<?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>197271</bug_id>
          
          <creation_ts>2019-04-24 21:34:11 -0700</creation_ts>
          <short_desc>[WPE][GTK] Add WebKitWebPage::did-associate-form-controls-for-frame and deprecate original did-associate-form-controls</short_desc>
          <delta_ts>2019-05-10 09:05:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1530295</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-24 21:34:11 -0700</bug_when>
    <thetext>WebKitWebPage::did-associate-form-controls should provide a WebKitFrame argument so that Epiphany can run JS in the frame the form exists in rather than only the main frame. But we can&apos;t do that without breaking API, so add a new signal instead and deprecate the old one.

Note this needs a WK2 owner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530299</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-24 21:37:26 -0700</bug_when>
    <thetext>Note the point of deprecating is to remind us to get rid of did-associate-form-controls-for-frame and add the parameter to did-associate-form-controls next time we break API (e.g. for GTK 4).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530300</commentid>
    <comment_count>2</comment_count>
      <attachid>368211</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-24 21:38:07 -0700</bug_when>
    <thetext>Created attachment 368211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530301</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-24 21:40:48 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530302</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-24 21:41:04 -0700</bug_when>
    <thetext>Attachment 368211 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:429:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531059</commentid>
    <comment_count>5</comment_count>
      <attachid>368433</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 09:22:33 -0700</bug_when>
    <thetext>Created attachment 368433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531060</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-28 09:24:57 -0700</bug_when>
    <thetext>Attachment 368433 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:429:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531066</commentid>
    <comment_count>7</comment_count>
      <attachid>368434</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 11:44:54 -0700</bug_when>
    <thetext>Created attachment 368434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531067</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-28 11:47:15 -0700</bug_when>
    <thetext>Attachment 368434 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:429:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531074</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-28 13:05:10 -0700</bug_when>
    <thetext>WK2 owner approval for the cross-platform bits would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533730</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-06 18:59:06 -0700</bug_when>
    <thetext>Ping for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533741</commentid>
    <comment_count>11</comment_count>
      <attachid>368434</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-05-06 19:11:47 -0700</bug_when>
    <thetext>Comment on attachment 368434
Patch

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

&gt; Source/WebCore/dom/Document.cpp:7007
&gt; +        ASSERT(m_frame);

What prevents m_frame from being null here?

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:175
&gt; +    m_client.didAssociateFormControlsForFrame(toAPI(page), toAPI(API::Array::create(WTFMove(elementHandles)).ptr()), toAPI(frame), m_client.base.clientInfo);

If didAssociateFormControlsForFrame is implemented, we probably do not want to call didAssociateFormControls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533903</commentid>
    <comment_count>12</comment_count>
      <attachid>368434</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-07 07:19:19 -0700</bug_when>
    <thetext>Comment on attachment 368434
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:7007
&gt;&gt; +        ASSERT(m_frame);
&gt; 
&gt; What prevents m_frame from being null here?

It&apos;s guaranteed by:

Page* Document::page() const
{
    return m_frame ? m_frame-&gt;page() : nullptr;
}

so I preferred to write it out as an ASSERT, rather than add an unneeded conditional or leave it ambiguous whether a conditional was missed here.

&gt;&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:175
&gt;&gt; +    m_client.didAssociateFormControlsForFrame(toAPI(page), toAPI(API::Array::create(WTFMove(elementHandles)).ptr()), toAPI(frame), m_client.base.clientInfo);
&gt; 
&gt; If didAssociateFormControlsForFrame is implemented, we probably do not want to call didAssociateFormControls.

I&apos;m not sure what advantage that would have, but either way seems reasonable to me, so OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533905</commentid>
    <comment_count>13</comment_count>
      <attachid>369281</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-07 07:26:43 -0700</bug_when>
    <thetext>Created attachment 369281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533906</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-07 07:28:25 -0700</bug_when>
    <thetext>Attachment 369281 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:429:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533918</commentid>
    <comment_count>15</comment_count>
      <attachid>369281</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-05-07 08:27:52 -0700</bug_when>
    <thetext>Comment on attachment 369281
Patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:163
&gt;          return;

This check should probably be updated so that a client that sets didAssociateFormControlsForFrame does not have to set didAssociateFormControls.

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:172
&gt; +        m_client.didAssociateFormControls(toAPI(page), toAPI(API::Array::create(WTFMove(elementHandles)).ptr()), m_client.base.clientInfo);

The idea is that the clients should transition from the old one to the new one.
Once a client opt in the new callback, it seems better for the old callback to become a no-op.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533981</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-07 11:14:04 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #15)
&gt; Comment on attachment 369281 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=369281&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:163
&gt; &gt;          return;
&gt; 
&gt; This check should probably be updated so that a client that sets
&gt; didAssociateFormControlsForFrame does not have to set
&gt; didAssociateFormControls.

Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533982</commentid>
    <comment_count>17</comment_count>
      <attachid>369303</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-07 11:14:39 -0700</bug_when>
    <thetext>Created attachment 369303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533984</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-07 11:19:28 -0700</bug_when>
    <thetext>Attachment 369303 did not pass style-queue:


ERROR: Source/WebCore/page/ChromeClient.h:429:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534046</commentid>
    <comment_count>19</comment_count>
      <attachid>369303</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-07 12:51:38 -0700</bug_when>
    <thetext>Comment on attachment 369303
Patch

Thanks, Youenn.

I need review from Carlos, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534076</commentid>
    <comment_count>20</comment_count>
      <attachid>369303</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-07 13:13:47 -0700</bug_when>
    <thetext>Comment on attachment 369303
Patch

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

LGTM too

&gt; Source/WebCore/dom/Document.cpp:6963
&gt; +        ASSERT(m_frame);

I think we should null check this.  Otherwise I think we&apos;ll introduce a rare crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534079</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-07 13:15:44 -0700</bug_when>
    <thetext>As explained above, no check is needed, it&apos;s guaranteed to be nonnull. The assert is just there to document that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534969</commentid>
    <comment_count>22</comment_count>
      <attachid>369303</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-10 02:31:33 -0700</bug_when>
    <thetext>Comment on attachment 369303
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1534970</commentid>
    <comment_count>23</comment_count>
      <attachid>369303</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-05-10 02:33:27 -0700</bug_when>
    <thetext>Comment on attachment 369303
Patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:571
&gt; +     * Deprecated: 2.26, use WebKitWebPage::form-controls-associated-for-frame instead.

I think you need to use #WebKitWebPage::form-controls-associated-for-frame for the link to be created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535011</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-10 09:05:39 -0700</bug_when>
    <thetext>Committed r245174: &lt;https://trac.webkit.org/changeset/245174&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368211</attachid>
            <date>2019-04-24 21:38:07 -0700</date>
            <delta_ts>2019-04-28 09:22:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197271-20190424233806.patch</filename>
            <type>text/plain</type>
            <size>19605</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc2MmJmNDhiNDRlMGVl
N2NhMmU5NmViYTE0NzhlODk2YjllNGFjMy4uZTBhY2M5YTI2YTkxYTQzZWE4NDAyYWFiOTY3ZGQ1
OGExOTA4MDlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTI0ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtH
VEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9yLWZy
YW1lIGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzVGltZXJGaXJlZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTktMDQtMTEgIFBhYmxvIFNhYXZlZHJh
ICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gQnVpbGQgZXJyb3Igd2l0
aCBFTkFCTEVfVklERU89T0ZGIGFmdGVyIHIyNDQwNzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzY4OGJhMTlhZGNk
YjEzMWUyZmY5NzM0ZDllNGJjNzlhZWE5MzI5Mi4uNDI1YjY3NmQ5ZTk3NWJiNzlhZWUxNDQyZjIw
OTM4NTFmZTEyZTk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0wNC0yNCAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1b
R1RLXSBBZGQgV2ViS2l0V2ViUGFnZTo6ZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLWZvci1m
cmFtZSBhbmQgZGVwcmVjYXRlIG9yaWdpbmFsIGRpZC1hc3NvY2lhdGUtZm9ybS1jb250cm9scwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MjcxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3Bw
OgorICAgICAgICAod2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRm9ybUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoK
KwogMjAxOS0wNC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZ3Jlc3Npb24ocjI0NDE0NCkgUHJvY2Vzc1N3YXAuUmV1c2VTdXNwZW5kZWRQcm9jZXNzTG9h
ZEhUTUxTdHJpbmcgQVBJIHRlc3QgaXMgZmxha3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGFiZWU3NDMzZjc0OTI4YmFlOThkOGJiZmEwMWM3MzZiZjVjZDAwMDcuLjBmOTQ0N2I4ZDMwN2M2
NzlhOTZiNGI5OTcxODcwMjRjMDAyZDFkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NzUyOSw4ICs3NTI5LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9s
c1RpbWVyRmlyZWQoKQogewogICAgIGF1dG8gdmVjdG9yID0gY29weVRvVmVjdG9yKG1fYXNzb2Np
YXRlZEZvcm1Db250cm9scyk7CiAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7
Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyh2ZWN0b3IpOworICAgIGlmIChh
dXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAg
ICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKHZl
Y3RvciwgKm1fZnJhbWUpOworICAgIH0KIH0KIAogdm9pZCBEb2N1bWVudDo6c2V0Q2FjaGVkRE9N
Q29va2llcyhjb25zdCBTdHJpbmcmIGNvb2tpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKaW5kZXggZDc5NGVmYmM1NGUzZmVlNzM4ZDVlM2VlMThiM2VkNDZhNDIyYjdlNy4uZTYy
ZTQwN2M2OWNmYWYwMWNiY2QwM2QxYjgxODVjYzFmNDBmYWFlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaApAQCAtMTkzLDcgKzE5Myw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xp
ZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgCiAgICAgYm9vbCBpc0VtcHR5Q2hyb21l
Q2xpZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBkaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mKSBmaW5hbCB7
IH0KKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRy
PEVsZW1lbnQ+PiYsIEZyYW1lJikgZmluYWwgeyB9CiAgICAgYm9vbCBzaG91bGROb3RpZnlPbkZv
cm1DaGFuZ2VzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFJlZlB0cjxJY29uPiBj
cmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qIGZpbGVuYW1lcyAqLykg
ZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggMGMzY2IwOTE3MWY2OWY3NTQzMzJjNWY1ZWVkNmE0YzNkMTQ0ZTI5Ny4uMTQ1ZDYyNGZlNTdj
YWIyNzdmMzQ5NDhkNGQxNDEwY2UwMzQzMzc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC00MjQsNyArNDI0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJ
bkV4dHJhU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVh
bCBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8
UmVmUHRyPEVsZW1lbnQ+PiYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiwgRnJhbWUmKSB7IH07CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBmYWxz
ZTsgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVy
JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAppbmRleCAz
ZmMzM2I5OGQxNjZmMjA1NmQ5YmE3MGU5NmJmZmU1ZmRkNjhiZmEyLi4zNjJhNDRkZmEwYzM3NjQ0
YmE3ZDA3M2I0Mjc0NWU1M2E3ODNjNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VGb3JtQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0sK
IHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEZvY3VzVGV4dEZpZWxkQ2FsbGJhY2spKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVu
dEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzQ2Fs
bGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5
cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNr
KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tBcnJheVJlZiBlbGVtZW50SGFuZGxlcywgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHNGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tB
cnJheVJlZiBlbGVtZW50SGFuZGxlcywgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRC
YXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC05Miw0ICs5MywyNyBAQCB0eXBlZGVm
IHN0cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjIgewogICAgIFdLQnVuZGxlUGFnZURpZEFz
c29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzOwogfSBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjI7CiAKK3R5cGVk
ZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMyB7CisgICAgV0tCdW5kbGVQYWdlRm9y
bUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl
OworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZVRleHRGaWVsZERpZEJlZ2lu
RWRpdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkRGlkQmVnaW5F
ZGl0aW5nOworICAgIFdLQnVuZGxlUGFnZVRleHRGaWVsZERpZEVuZEVkaXRpbmdDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkRGlkRW5kRWRpdGluZzsKKyAgICBXS0J1
bmRsZVBhZ2VUZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZDsKKyAgICBXS0J1bmRsZVBhZ2VUZXh0RGlk
Q2hhbmdlSW5UZXh0QXJlYUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHRleHREaWRD
aGFuZ2VJblRleHRBcmVhOworICAgIFdLQnVuZGxlUGFnZVNob3VsZFBlcmZvcm1BY3Rpb25JblRl
eHRGaWVsZENhbGxiYWNrICAgICAgICAgICAgICAgICAgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4
dEZpZWxkOworICAgIFdLQnVuZGxlUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFN1Ym1pdEZvcm07CisKKyAgICAvLyBWZXJzaW9u
IDEuCisgICAgV0tCdW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWxsU2VuZFN1Ym1pdEV2ZW50OworCisgICAgLy8gdmVyc2lv
biAyLgorICAgIFdLQnVuZGxlUGFnZURpZEZvY3VzVGV4dEZpZWxkQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkRm9jdXNUZXh0RmllbGQ7CisgICAgV0tCdW5kbGVQYWdl
U2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBz
aG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOworICAgIFdLQnVuZGxlUGFnZURpZEFzc29jaWF0ZUZv
cm1Db250cm9sc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzOworCisgICAgLy8gdmVyc2lvbiAzLgorICAgIFdLQnVuZGxlUGFnZURpZEFzc29j
aWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzRm9yRnJhbWU7Cit9IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMzsKKwog
I2VuZGlmIC8vIFdLQnVuZGxlUGFnZUZvcm1DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dFdlYlBhZ2UuY3BwCmluZGV4IDQ3ZjBmMDRjZTdmOTA1ZDJiNTIyMTcxNTZlNWM4NDgxYWUzY2E2
YTIuLjAyZDY4YjY3MTEyNTBlZmMwZjhmYzY4MmQzZThmMzc1Y2M3MzZjNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRX
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSB7CiAgICAg
Q09OVEVYVF9NRU5VLAogICAgIENPTlNPTEVfTUVTU0FHRV9TRU5ULAogICAgIEZPUk1fQ09OVFJP
TFNfQVNTT0NJQVRFRCwKKyAgICBGT1JNX0NPTlRST0xTX0FTU09DSUFURURfRk9SX0ZSQU1FLAog
ICAgIFdJTExfU1VCTUlUX0ZPUk0sCiAKICAgICBMQVNUX1NJR05BTApAQCAtMzgwLDEzICszODEs
MTQgQEAgcHVibGljOgogICAgICAgICBmaXJlRm9ybVN1Ym1pc3Npb25FdmVudChXRUJLSVRfRk9S
TV9TVUJNSVNTSU9OX1dJTExfU0VORF9ET01fRVZFTlQsIGZvcm1FbGVtZW50LCBmcmFtZSwgc291
cmNlRnJhbWUsIHZhbHVlcyk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHMoV2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiBlbGVtZW50cykg
b3ZlcnJpZGUKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29u
c3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1lbnRzLCBXZWJGcmFtZSogZnJhbWUpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICBHUmVmUHRyPEdQdHJBcnJheT4gZm9ybUVsZW1lbnRzID0g
YWRvcHRHUmVmKGdfcHRyX2FycmF5X3NpemVkX25ldyhlbGVtZW50cy5zaXplKCkpKTsKICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbGVtZW50cy5zaXplKCk7ICsraSkKICAgICAgICAg
ICAgIGdfcHRyX2FycmF5X2FkZChmb3JtRWxlbWVudHMuZ2V0KCksIFdlYktpdDo6a2l0KGVsZW1l
bnRzW2ldLmdldCgpKSk7CiAKICAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25h
bHNbRk9STV9DT05UUk9MU19BU1NPQ0lBVEVEXSwgMCwgZm9ybUVsZW1lbnRzLmdldCgpKTsKKyAg
ICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25hbHNbRk9STV9DT05UUk9MU19BU1NP
Q0lBVEVEX0ZPUl9GUkFNRV0sIDAsIGZvcm1FbGVtZW50cy5nZXQoKSwgd2Via2l0RnJhbWVHZXRP
ckNyZWF0ZShmcmFtZSkpOwogICAgIH0KIAogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hh
bmdlcyhXZWJQYWdlKikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTY1LDE2ICs1Njcs
NDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQoV2ViS2l0V2ViUGFn
ZUNsYXNzKiBrbGFzcykKICAgICAgKiBrZWVwIHRoZW0gYWxpdmUgYWZ0ZXIgdGhlIHNpZ25hbCBo
YW5kbGVyIHJldHVybnMuCiAgICAgICoKICAgICAgKiBTaW5jZTogMi4xNgorICAgICAqCisgICAg
ICogRGVwcmVjYXRlZDogMi4yNiwgdXNlIFdlYktpdFdlYlBhZ2U6OmZvcm0tY29udHJvbHMtYXNz
b2NpYXRlZC1mb3ItZnJhbWUgaW5zdGVhZC4KICAgICAgKi8KICAgICBzaWduYWxzW0ZPUk1fQ09O
VFJPTFNfQVNTT0NJQVRFRF0gPSBnX3NpZ25hbF9uZXcoCiAgICAgICAgICJmb3JtLWNvbnRyb2xz
LWFzc29jaWF0ZWQiLAogICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhrbGFzcyksCi0gICAgICAg
IEdfU0lHTkFMX1JVTl9MQVNULAorICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxhZ3M+KEdf
U0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfREVQUkVDQVRFRCksCiAgICAgICAgIDAsIDAsIG51
bGxwdHIsCiAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19CT1hFRCwKICAgICAgICAg
R19UWVBFX05PTkUsIDEsCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVkpOwogCisgICAgLyoqCisg
ICAgICogV2ViS2l0V2ViUGFnZTo6Zm9ybS1jb250cm9scy1hc3NvY2lhdGVkLWZvci1mcmFtZToK
KyAgICAgKiBAd2ViX3BhZ2U6IHRoZSAjV2ViS2l0V2ViUGFnZSBvbiB3aGljaCB0aGUgc2lnbmFs
IGlzIGVtaXR0ZWQKKyAgICAgKiBAZWxlbWVudHM6IChlbGVtZW50LXR5cGUgV2ViS2l0RE9NRWxl
bWVudCkgKHRyYW5zZmVyIG5vbmUpOiBhICNHUHRyQXJyYXkgb2YKKyAgICAgKiAgICAgI1dlYktp
dERPTUVsZW1lbnQgd2l0aCB0aGUgbGlzdCBvZiBmb3JtcyBpbiB0aGUgcGFnZQorICAgICAqIEBm
cmFtZTogdGhlICNXZWJLaXRGcmFtZQorICAgICAqCisgICAgICogRW1pdHRlZCBhZnRlciBmb3Jt
IGVsZW1lbnRzIChvciBmb3JtIGFzc29jaWF0ZWQgZWxlbWVudHMpIGFyZSBhc3NvY2lhdGVkIHRv
IGEgcGFydGljdWxhciB3ZWIKKyAgICAgKiBwYWdlLiBUaGlzIGlzIHVzZWZ1bCB0byBpbXBsZW1l
bnQgZm9ybSBhdXRvIGZpbGxpbmcgZm9yIHdlYiBwYWdlcyB3aGVyZSBmb3JtIGZpZWxkcyBhcmUg
YWRkZWQKKyAgICAgKiBkeW5hbWljYWxseS4gVGhpcyBzaWduYWwgbWlnaHQgYmUgZW1pdHRlZCBt
dWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgd2ViIHBhZ2UuCisgICAgICoKKyAgICAgKiBOb3Rl
IHRoYXQgdGhpcyBzaWduYWwgY291bGQgYmUgYWxzbyBlbWl0dGVkIHdoZW4gZm9ybSBjb250cm9s
cyBhcmUgbW92ZWQgYmV0d2VlbiBmb3Jtcy4gSW4KKyAgICAgKiB0aGF0IGNhc2UsIHRoZSBAZWxl
bWVudHMgYXJyYXkgY2FycmllcyB0aGUgbGlzdCBvZiB0aG9zZSBlbGVtZW50cyB3aGljaCBoYXZl
IG1vdmVkLgorICAgICAqCisgICAgICogQ2xpZW50cyBzaG91bGQgdGFrZSBhIHJlZmVyZW5jZSB0
byB0aGUgbWVtYmVycyBvZiB0aGUgQGVsZW1lbnRzIGFycmF5IGlmIGl0IGlzIGRlc2lyZWQgdG8K
KyAgICAgKiBrZWVwIHRoZW0gYWxpdmUgYWZ0ZXIgdGhlIHNpZ25hbCBoYW5kbGVyIHJldHVybnMu
CisgICAgICoKKyAgICAgKiBTaW5jZTogMi4yNgorICAgICAqLworICAgIHNpZ25hbHNbRk9STV9D
T05UUk9MU19BU1NPQ0lBVEVEX0ZPUl9GUkFNRV0gPSBnX3NpZ25hbF9uZXcoCisgICAgICAgICJm
b3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtZm9yLWZyYW1lIiwKKyAgICAgICAgR19UWVBFX0ZST01f
Q0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgMCwgMCwg
bnVsbHB0ciwKKyAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMsCisgICAgICAgIEdf
VFlQRV9OT05FLCAyLAorICAgICAgICBHX1RZUEVfUFRSX0FSUkFZLAorICAgICAgICBXRUJLSVRf
VFlQRV9GUkFNRSk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJQYWdlOjp3aWxsLXN1Ym1p
dC1mb3JtOgogICAgICAqIEB3ZWJfcGFnZTogdGhlICNXZWJLaXRXZWJQYWdlIG9uIHdoaWNoIHRo
ZSBzaWduYWwgaXMgZW1pdHRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVu
dC5oCmluZGV4IDkyZWJjZmUwMTNjYzM3OTg5NmRiN2YxNDMzOTM3MTBjZDViMTJlZTkuLjAzOTVi
MzIzZjc2MDEyM2EwN2JhMDk2ZTQyYjk4ZGJlMThkMmY0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJSW5q
ZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQoV2ViS2l0OjpXZWJQYWdl
KiwgV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCosIElucHV0RmllbGRBY3Rpb24sIFdlYktpdDo6
V2ViRnJhbWUqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3VibWl0
Rm9ybShXZWJLaXQ6OldlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBXZWJLaXQ6
OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V1RG
OjpTdHJpbmcsIFdURjo6U3RyaW5nPj4mLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkg
eyBVTlVTRURfUEFSQU0odXNlckRhdGEpOyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kU3Vi
bWl0RXZlbnQoV2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2Vi
S2l0OjpXZWJGcmFtZSosIFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBWZWN0b3I8c3RkOjpwYWly
PFdURjo6U3RyaW5nLCBXVEY6OlN0cmluZz4+JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFz
c29jaWF0ZUZvcm1Db250cm9scyhXZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRy
PFdlYkNvcmU6OkVsZW1lbnQ+PiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVG
b3JtQ29udHJvbHMoV2ViS2l0OjpXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3Jl
OjpFbGVtZW50Pj4mLCBXZWJLaXQ6OldlYkZyYW1lKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoV2ViS2l0OjpXZWJQYWdlKikgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luSW5wdXRTZXNzaW9uKFdlYktpdDo6V2ViUGFn
ZSosIFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCB1c2VySXNJbnRl
cmFjdGluZywgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNlckRhdGEpIHsgVU5VU0VEX1BBUkFNKHVz
ZXJEYXRhKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
LmNwcAppbmRleCAwMmI1YjUzZjJmYWI5NjZiMzc3MDgwYzQzZjQ1NGM1N2EzOTQ0MmU5Li5kYWE3
ZWU1NTdmNTI3OGQwZjAxNjY1NWI2OTgwNWY1YTkzNDczMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9ybShXZWJQYWdlKiBwYWdl
LCBIVE1MRm9ybUVsZW1lbnQKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1wbCh1c2VyRGF0
YVRvUGFzcykpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OmRpZEFz
c29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiBwYWdlLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdl
YkNvcmU6OkVsZW1lbnQ+PiYgZWxlbWVudHMpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiBwYWdlLCBjb25zdCBWZWN0
b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYgZWxlbWVudHMsIFdlYkZyYW1lKiBmcmFtZSkK
IHsKICAgICBpZiAoIW1fY2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9scykKICAgICAgICAg
cmV0dXJuOwpAQCAtMTY5LDYgKzE2OSwxMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiBwYWdlLCBjb25zdAogICAg
ICAgICBlbGVtZW50SGFuZGxlcy51bmNoZWNrZWRBcHBlbmQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlOjpnZXRPckNyZWF0ZShlbGVtZW50LmdldCgpKSk7CiAKICAgICBtX2NsaWVudC5kaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHModG9BUEkocGFnZSksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShX
VEZNb3ZlKGVsZW1lbnRIYW5kbGVzKSkucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworCisgICAgaWYgKCFtX2NsaWVudC5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNGb3JGcmFtZSkK
KyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc0Zv
ckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShlbGVt
ZW50SGFuZGxlcykpLnB0cigpKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnNob3VsZE5vdGlm
eU9uRm9ybUNoYW5nZXMoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oCmluZGV4IGU5ZGY1MzEzZGIwMzA5ZDJiZjYxMDE5MTc3MjNmZmNhMTEz
OTQ0MmYuLmUzNWIyMWY1ODc0OGE1NDhkNWEzMDkzOGJmMDYxZGYxOWI5MTllN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaApAQCAtMzMsNyArMzMsNyBAQAog
bmFtZXNwYWNlIEFQSSB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBh
Z2VGb3JtQ2xpZW50VjAsIFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMSwgV0tCdW5kbGVQYWdlRm9y
bUNsaWVudFYyPiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdl
Rm9ybUNsaWVudFYwLCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjEsIFdLQnVuZGxlUGFnZUZvcm1D
bGllbnRWMiwgV0tCdW5kbGVQYWdlRm9ybUNsaWVudFYzPiBWZXJzaW9uczsKIH07CiB9CiAKQEAg
LTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4
dEZpZWxkKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgSW5wdXRGaWVsZEFj
dGlvbiwgV2ViRnJhbWUqKSBvdmVycmlkZTsgICAgCiAgICAgdm9pZCB3aWxsU3VibWl0Rm9ybShX
ZWJQYWdlKiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViRnJhbWUqLCBXZWJGcmFtZSog
c291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYsIFJl
ZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZW5k
U3VibWl0RXZlbnQoV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1l
KiwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywg
U3RyaW5nPj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhX
ZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29uc3QgVmVj
dG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mLCBXZWJGcmFtZSopIG92ZXJyaWRlOwogICAg
IGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyhXZWJQYWdlKikgb3ZlcnJpZGU7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDhjOGIwZmNmMjVlMmNkYmE5NGY5ZmIxYTRiMjVh
NDExNmMxNDI3N2YuLmVmMjdhMzdiMmQzOGYzZDllYzQ0NDFkY2I5MWI1MGQ0NGRkMjUyOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04MzksOSArODM5LDExIEBAIFJlZlB0cjxJY29uPiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzCiAKICNlbmRpZgogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiBlbGVtZW50cykKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9y
PFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1lbnRzLCBXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiB7Ci0g
ICAgcmV0dXJuIG1fcGFnZS5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRBc3NvY2lhdGVG
b3JtQ29udHJvbHMoJm1fcGFnZSwgZWxlbWVudHMpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9
IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOwor
ICAgIHJldHVybiBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkuZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKCZtX3BhZ2UsIGVsZW1lbnRzLCB3ZWJGcmFtZSk7CiB9CiAKIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAppbmRleCAyNjlhYTNlMjEwOGEyMTIyMTE5MDNmNmZjYTRjNTFmNTk4ZTgzMzBjLi44ZmUzMTBh
ZmI5MjY0N2Q2OGZmZGZiN2E4NTBmZDNkNWU1OWIyYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC0xOTksNyArMTk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2Nr
KCkgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JikgZmluYWw7CisgICAgdm9pZCBk
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVt
ZW50Pj4mLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25G
b3JtQ2hhbmdlcygpIGZpbmFsOwogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDhlY2ZlMTFjNmY1OGRhM2NjNTJlMmIzYjQ4MDljMmMyZWUyOWE4YzAu
LmYwNTg4ZjNjYTE1OWVkMDhiZjcyZjcyZWRkOWY2YjAxNTcwODM4NGUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
OS0wNC0yNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW1dQRV1bR1RLXSBBZGQgV2ViS2l0V2ViUGFnZTo6ZGlkLWFzc29jaWF0ZS1mb3JtLWNv
bnRyb2xzLWZvci1mcmFtZSBhbmQgZGVwcmVjYXRlIG9yaWdpbmFsIGRpZC1hc3NvY2lhdGUtZm9y
bS1jb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MjcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6
CisgICAgICAgIChmb3JtQ29udHJvbHNBc3NvY2lhdGVkRm9yRnJhbWVDYWxsYmFjayk6CisgICAg
ICAgIChwYWdlQ3JlYXRlZENhbGxiYWNrKToKKyAgICAgICAgKGZvcm1Db250cm9sc0Fzc29jaWF0
ZWRDYWxsYmFjayk6IERlbGV0ZWQuCisKIDIwMTktMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXS05hdmlnYXRpb25SZXNwb25zZS5f
ZG93bmxvYWRBdHRyaWJ1dGUgc2hvdWxkIGJlIG5pbCB3aGVuIG5vIGRvd25sb2FkIGF0dHJpYnV0
ZSBpcyBwcmVzZW50CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKaW5kZXggMjY2NDU1NTIzY2NlMWZiM2JkYzg4
OGNjMWVhZmNjZTk4MTZiMWU3Ny4uMWE1NjU4NDRkYWEwMmJhNjJhOWFjZWU2OTZlZjUwNWI0MTY0
MDEyYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dl
YkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcApAQCAtMzE2LDkgKzMxNiw4IEBAIHN0YXRpYyB2b2lk
IGVtaXRGb3JtQ29udHJvbHNBc3NvY2lhdGVkKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Y29uc3QgY2hhcioKICAgICBnX2Fzc2VydF90cnVlKG9rKTsKIH0KIAotc3RhdGljIHZvaWQgZm9y
bUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIEdQdHJB
cnJheSogZm9ybUVsZW1lbnRzLCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKK3N0YXRp
YyB2b2lkIGZvcm1Db250cm9sc0Fzc29jaWF0ZWRGb3JGcmFtZUNhbGxiYWNrKFdlYktpdFdlYlBh
Z2UqIHdlYlBhZ2UsIEdQdHJBcnJheSogZm9ybUVsZW1lbnRzLCBXZWJLaXRGcmFtZSogZnJhbWUs
IFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogewotICAgIGF1dG8qIGZyYW1lID0gd2Vi
a2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHdlYlBhZ2UpOwogICAgIEdTdHJpbmcqIGZvcm1J
ZHNCdWlsZGVyID0gZ19zdHJpbmdfbmV3KG51bGxwdHIpOwogICAgIGZvciAoZ3VpbnQgaSA9IDA7
IGkgPCBmb3JtRWxlbWVudHMtPmxlbjsgKytpKSB7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoV0VC
S0lUX0RPTV9JU19FTEVNRU5UKGdfcHRyX2FycmF5X2luZGV4KGZvcm1FbGVtZW50cywgaSkpKTsK
QEAgLTQxMyw3ICs0MTIsNyBAQCBzdGF0aWMgdm9pZCBwYWdlQ3JlYXRlZENhbGxiYWNrKFdlYktp
dFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBXZWJLaXRXZWJQYWdlKiB3ZQogICAgIGdfc2lnbmFs
X2Nvbm5lY3Qod2ViUGFnZSwgInNlbmQtcmVxdWVzdCIsIEdfQ0FMTEJBQ0soc2VuZFJlcXVlc3RD
YWxsYmFjayksIG51bGxwdHIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgImNvbnNv
bGUtbWVzc2FnZS1zZW50IiwgR19DQUxMQkFDSyhjb25zb2xlTWVzc2FnZVNlbnRDYWxsYmFjayks
IG51bGxwdHIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgImNvbnRleHQtbWVudSIs
IEdfQ0FMTEJBQ0soY29udGV4dE1lbnVDYWxsYmFjayksIG51bGxwdHIpOwotICAgIGdfc2lnbmFs
X2Nvbm5lY3Qod2ViUGFnZSwgImZvcm0tY29udHJvbHMtYXNzb2NpYXRlZCIsIEdfQ0FMTEJBQ0so
Zm9ybUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKKyAgICBnX3NpZ25h
bF9jb25uZWN0KHdlYlBhZ2UsICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtZm9yLWZyYW1lIiwg
R19DQUxMQkFDSyhmb3JtQ29udHJvbHNBc3NvY2lhdGVkRm9yRnJhbWVDYWxsYmFjayksIGV4dGVu
c2lvbik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAid2lsbC1zdWJtaXQtZm9ybSIs
IEdfQ0FMTEJBQ0sod2lsbFN1Ym1pdEZvcm1DYWxsYmFjayksIGV4dGVuc2lvbik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368433</attachid>
            <date>2019-04-28 09:22:33 -0700</date>
            <delta_ts>2019-04-28 11:44:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197271-20190428112232.patch</filename>
            <type>text/plain</type>
            <size>20725</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE4ZTRkYzQ3ZGUxYmUw
YzJhZGYxYjhiYjJjOWZkYTU3NjkxOGIwZS4uZTg5MjY0OGJhZjE3NWY4MmExYTZkMTVmODQyN2Uy
Zjg5YzAzYmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTI4ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtH
VEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9yLWZy
YW1lIGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzVGltZXJGaXJlZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTktMDQtMjcgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzb21lIENvbXBvc2l0aW5n
IGxvZ2dpbmcgdG8gdGhlIExheWVycyBsb2cgY2hhbm5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNDMzZTI1MzA3
MjgxNDg2YWNhOTVhOTAxYWU4NzNjODk0ZWI2ZTAzLi4wNWQwMjNjOWYyN2RjMmFkNzZlMTIxYzBl
NmRkYjAzMTY3YWZiOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA0LTI4ICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BF
XVtHVEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9y
LWZyYW1lIGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3BhZ2VfY2xhc3NfaW5pdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyIF9zZXRGb3JtRGVsZWdhdGU6XSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaDoKKyAgICAg
ICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250
cm9scyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
CiAyMDE5LTA0LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
SW1wcm92ZSBzYWZldHkgb2YgTWFjaE1lc3NhZ2UgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDE3OTRiZWQ3NWE1YmQ5NjAwMzMxZDI1MjBmMjZiMGVjNzBjZDBmMjEuLjU5NTQwZDBj
MmVmYjY3ODVkMDJlZWFkMjkxOGQ1MWU3OTlmOTc0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNzAwMyw4ICs3MDAzLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyRmlyZWQoKQogewogICAgIGF1dG8gdmVjdG9yID0gY29weVRvVmVjdG9yKG1f
YXNzb2NpYXRlZEZvcm1Db250cm9scyk7CiAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNs
ZWFyKCk7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyh2ZWN0b3IpOworICAg
IGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIEFTU0VSVChtX2ZyYW1l
KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKHZlY3RvciwgKm1fZnJhbWUpOworICAgIH0KIH0KIAogdm9pZCBEb2N1bWVudDo6c2V0Q2Fj
aGVkRE9NQ29va2llcyhjb25zdCBTdHJpbmcmIGNvb2tpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKaW5kZXggNmE2NjNmODI2ZjNhZTQ5YzhjMDViZjAzZTMwNjJlZDdiYjE4NTYz
MC4uZDQ1MjI4ZWVkMjBlYjk5NWY1ZGYyYTQ2MmZiNGUzNGI3M2I5OGYzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTk0LDcgKzE5NCw3IEBAIGNsYXNzIEVtcHR5Q2hy
b21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgCiAgICAgYm9vbCBpc0VtcHR5
Q2hyb21lQ2xpZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBk
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mKSBm
aW5hbCB7IH0KKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8
UmVmUHRyPEVsZW1lbnQ+PiYsIEZyYW1lJikgZmluYWwgeyB9CiAgICAgYm9vbCBzaG91bGROb3Rp
ZnlPbkZvcm1DaGFuZ2VzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFJlZlB0cjxJ
Y29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qIGZpbGVuYW1l
cyAqLykgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKaW5kZXggY2RkZjEzY2FlODg5MzBlMjM2ZTk0MDlmOTJlZmMyZmZkNDBiZjVkOS4uYThjZjhl
ZWZhZGNlY2VhMjg0ZDcxOGM3NWY4NmI4MDUwMDhhNmE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCkBAIC00MjYsNyArNDI2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5n
IHBsdWdJbkV4dHJhU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAg
dmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25zdCB7IHJldHVybiBTdHJpbmco
KTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiwgRnJhbWUmKSB7
IH07CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVy
biBmYWxzZTsgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihHcmFwaGlj
c0xheWVyJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaApp
bmRleCAzZmMzM2I5OGQxNjZmMjA1NmQ5YmE3MGU5NmJmZmU1ZmRkNjhiZmEyLi4zNjJhNDRkZmEw
YzM3NjQ0YmE3ZDA3M2I0Mjc0NWU1M2E3ODNjNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VGb3JtQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0sKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEZvY3VzVGV4dEZpZWxkQ2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0
RWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGROb3RpZnlPbkZvcm1DaGFu
Z2VzQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0Nh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tBcnJheVJlZiBlbGVtZW50SGFuZGxlcywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHNGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tBcnJheVJlZiBlbGVtZW50SGFuZGxlcywgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1D
bGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC05Miw0ICs5MywyNyBAQCB0
eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjIgewogICAgIFdLQnVuZGxlUGFn
ZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzOwogfSBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjI7CiAK
K3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMyB7CisgICAgV0tCdW5kbGVQ
YWdlRm9ybUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZVRleHRGaWVsZERp
ZEJlZ2luRWRpdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkRGlk
QmVnaW5FZGl0aW5nOworICAgIFdLQnVuZGxlUGFnZVRleHRGaWVsZERpZEVuZEVkaXRpbmdDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkRGlkRW5kRWRpdGluZzsKKyAg
ICBXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZDsKKyAgICBXS0J1bmRsZVBhZ2VU
ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHREaWRDaGFuZ2VJblRleHRBcmVhOworICAgIFdLQnVuZGxlUGFnZVNob3VsZFBlcmZvcm1BY3Rp
b25JblRleHRGaWVsZENhbGxiYWNrICAgICAgICAgICAgICAgICAgc2hvdWxkUGVyZm9ybUFjdGlv
bkluVGV4dEZpZWxkOworICAgIFdLQnVuZGxlUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFN1Ym1pdEZvcm07CisKKyAgICAvLyBW
ZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsU2VuZFN1Ym1pdEV2ZW50OworCisgICAgLy8g
dmVyc2lvbiAyLgorICAgIFdLQnVuZGxlUGFnZURpZEZvY3VzVGV4dEZpZWxkQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRm9jdXNUZXh0RmllbGQ7CisgICAgV0tCdW5k
bGVQYWdlU2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlc0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOworICAgIFdLQnVuZGxlUGFnZURpZEFzc29j
aWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzOworCisgICAgLy8gdmVyc2lvbiAzLgorICAgIFdLQnVuZGxlUGFnZURp
ZEFzc29jaWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzRm9yRnJhbWU7Cit9IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRW
MzsKKwogI2VuZGlmIC8vIFdLQnVuZGxlUGFnZUZvcm1DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDQ3ZjBmMDRjZTdmOTA1ZDJiNTIyMTcxNTZlNWM4NDgx
YWUzY2E2YTIuLjAyZDY4YjY3MTEyNTBlZmMwZjhmYzY4MmQzZThmMzc1Y2M3MzZjNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9X
ZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSB7
CiAgICAgQ09OVEVYVF9NRU5VLAogICAgIENPTlNPTEVfTUVTU0FHRV9TRU5ULAogICAgIEZPUk1f
Q09OVFJPTFNfQVNTT0NJQVRFRCwKKyAgICBGT1JNX0NPTlRST0xTX0FTU09DSUFURURfRk9SX0ZS
QU1FLAogICAgIFdJTExfU1VCTUlUX0ZPUk0sCiAKICAgICBMQVNUX1NJR05BTApAQCAtMzgwLDEz
ICszODEsMTQgQEAgcHVibGljOgogICAgICAgICBmaXJlRm9ybVN1Ym1pc3Npb25FdmVudChXRUJL
SVRfRk9STV9TVUJNSVNTSU9OX1dJTExfU0VORF9ET01fRVZFTlQsIGZvcm1FbGVtZW50LCBmcmFt
ZSwgc291cmNlRnJhbWUsIHZhbHVlcyk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRBc3NvY2lhdGVG
b3JtQ29udHJvbHMoV2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiBlbGVt
ZW50cykgb3ZlcnJpZGUKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdl
KiwgY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1lbnRzLCBXZWJGcmFtZSogZnJh
bWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBHUmVmUHRyPEdQdHJBcnJheT4gZm9ybUVsZW1l
bnRzID0gYWRvcHRHUmVmKGdfcHRyX2FycmF5X3NpemVkX25ldyhlbGVtZW50cy5zaXplKCkpKTsK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbGVtZW50cy5zaXplKCk7ICsraSkKICAg
ICAgICAgICAgIGdfcHRyX2FycmF5X2FkZChmb3JtRWxlbWVudHMuZ2V0KCksIFdlYktpdDo6a2l0
KGVsZW1lbnRzW2ldLmdldCgpKSk7CiAKICAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2Us
IHNpZ25hbHNbRk9STV9DT05UUk9MU19BU1NPQ0lBVEVEXSwgMCwgZm9ybUVsZW1lbnRzLmdldCgp
KTsKKyAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25hbHNbRk9STV9DT05UUk9M
U19BU1NPQ0lBVEVEX0ZPUl9GUkFNRV0sIDAsIGZvcm1FbGVtZW50cy5nZXQoKSwgd2Via2l0RnJh
bWVHZXRPckNyZWF0ZShmcmFtZSkpOwogICAgIH0KIAogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25G
b3JtQ2hhbmdlcyhXZWJQYWdlKikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTY1LDE2
ICs1NjcsNDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQoV2ViS2l0
V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgKiBrZWVwIHRoZW0gYWxpdmUgYWZ0ZXIgdGhlIHNp
Z25hbCBoYW5kbGVyIHJldHVybnMuCiAgICAgICoKICAgICAgKiBTaW5jZTogMi4xNgorICAgICAq
CisgICAgICogRGVwcmVjYXRlZDogMi4yNiwgdXNlIFdlYktpdFdlYlBhZ2U6OmZvcm0tY29udHJv
bHMtYXNzb2NpYXRlZC1mb3ItZnJhbWUgaW5zdGVhZC4KICAgICAgKi8KICAgICBzaWduYWxzW0ZP
Uk1fQ09OVFJPTFNfQVNTT0NJQVRFRF0gPSBnX3NpZ25hbF9uZXcoCiAgICAgICAgICJmb3JtLWNv
bnRyb2xzLWFzc29jaWF0ZWQiLAogICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhrbGFzcyksCi0g
ICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAorICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxh
Z3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfREVQUkVDQVRFRCksCiAgICAgICAgIDAs
IDAsIG51bGxwdHIsCiAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19CT1hFRCwKICAg
ICAgICAgR19UWVBFX05PTkUsIDEsCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVkpOwogCisgICAg
LyoqCisgICAgICogV2ViS2l0V2ViUGFnZTo6Zm9ybS1jb250cm9scy1hc3NvY2lhdGVkLWZvci1m
cmFtZToKKyAgICAgKiBAd2ViX3BhZ2U6IHRoZSAjV2ViS2l0V2ViUGFnZSBvbiB3aGljaCB0aGUg
c2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZWxlbWVudHM6IChlbGVtZW50LXR5cGUgV2ViS2l0
RE9NRWxlbWVudCkgKHRyYW5zZmVyIG5vbmUpOiBhICNHUHRyQXJyYXkgb2YKKyAgICAgKiAgICAg
I1dlYktpdERPTUVsZW1lbnQgd2l0aCB0aGUgbGlzdCBvZiBmb3JtcyBpbiB0aGUgcGFnZQorICAg
ICAqIEBmcmFtZTogdGhlICNXZWJLaXRGcmFtZQorICAgICAqCisgICAgICogRW1pdHRlZCBhZnRl
ciBmb3JtIGVsZW1lbnRzIChvciBmb3JtIGFzc29jaWF0ZWQgZWxlbWVudHMpIGFyZSBhc3NvY2lh
dGVkIHRvIGEgcGFydGljdWxhciB3ZWIKKyAgICAgKiBwYWdlLiBUaGlzIGlzIHVzZWZ1bCB0byBp
bXBsZW1lbnQgZm9ybSBhdXRvIGZpbGxpbmcgZm9yIHdlYiBwYWdlcyB3aGVyZSBmb3JtIGZpZWxk
cyBhcmUgYWRkZWQKKyAgICAgKiBkeW5hbWljYWxseS4gVGhpcyBzaWduYWwgbWlnaHQgYmUgZW1p
dHRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgd2ViIHBhZ2UuCisgICAgICoKKyAgICAg
KiBOb3RlIHRoYXQgdGhpcyBzaWduYWwgY291bGQgYmUgYWxzbyBlbWl0dGVkIHdoZW4gZm9ybSBj
b250cm9scyBhcmUgbW92ZWQgYmV0d2VlbiBmb3Jtcy4gSW4KKyAgICAgKiB0aGF0IGNhc2UsIHRo
ZSBAZWxlbWVudHMgYXJyYXkgY2FycmllcyB0aGUgbGlzdCBvZiB0aG9zZSBlbGVtZW50cyB3aGlj
aCBoYXZlIG1vdmVkLgorICAgICAqCisgICAgICogQ2xpZW50cyBzaG91bGQgdGFrZSBhIHJlZmVy
ZW5jZSB0byB0aGUgbWVtYmVycyBvZiB0aGUgQGVsZW1lbnRzIGFycmF5IGlmIGl0IGlzIGRlc2ly
ZWQgdG8KKyAgICAgKiBrZWVwIHRoZW0gYWxpdmUgYWZ0ZXIgdGhlIHNpZ25hbCBoYW5kbGVyIHJl
dHVybnMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi4yNgorICAgICAqLworICAgIHNpZ25hbHNb
Rk9STV9DT05UUk9MU19BU1NPQ0lBVEVEX0ZPUl9GUkFNRV0gPSBnX3NpZ25hbF9uZXcoCisgICAg
ICAgICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtZm9yLWZyYW1lIiwKKyAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAg
MCwgMCwgbnVsbHB0ciwKKyAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMsCisgICAg
ICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHX1RZUEVfUFRSX0FSUkFZLAorICAgICAgICBX
RUJLSVRfVFlQRV9GUkFNRSk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJQYWdlOjp3aWxs
LXN1Ym1pdC1mb3JtOgogICAgICAqIEB3ZWJfcGFnZTogdGhlICNXZWJLaXRXZWJQYWdlIG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
CmluZGV4IDgwY2FhMmQ1OTdmNTE3ZTNlODYxMTk3MTgzMjM3YzExNjJkYjRkYmYuLjExYTdiY2Rh
NjE5ZDRhZjYxNzMyM2JkMzRiYzdmNGQzMzcxOGVmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIubW0KQEAgLTUyNiw3ICs1MjYsNyBAQCAtICh2b2lkKV9zZXRGb3JtRGVsZWdhdGU6
KGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlPilmb3JtRGVsZWdhdAog
ICAgICAgICAgICAgcmV0dXJuIFtmb3JtRGVsZWdhdGUgX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXJTaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOm1fY29udHJvbGxlcl07
CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJL
aXQ6OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYgZWxl
bWVudHMpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdl
YktpdDo6V2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JiBl
bGVtZW50cywgV2ViRnJhbWUqKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBhdXRv
IGZvcm1EZWxlZ2F0ZSA9IG1fY29udHJvbGxlci0+X2Zvcm1EZWxlZ2F0ZS5nZXQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSUluamVj
dGVkQnVuZGxlRm9ybUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVudC5oCmluZGV4IDkyZWJjZmUwMTNjYzM3
OTg5NmRiN2YxNDMzOTM3MTBjZDViMTJlZTkuLjAzOTViMzIzZjc2MDEyM2EwN2JhMDk2ZTQyYjk4
ZGJlMThkMmY0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmgK
QEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQZXJmb3Jt
QWN0aW9uSW5UZXh0RmllbGQoV2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudCosIElucHV0RmllbGRBY3Rpb24sIFdlYktpdDo6V2ViRnJhbWUqKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3VibWl0Rm9ybShXZWJLaXQ6OldlYlBhZ2UqLCBX
ZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBXZWJLaXQ6OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJG
cmFtZSosIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V1RGOjpTdHJpbmcsIFdURjo6U3RyaW5nPj4m
LCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgeyBVTlVTRURfUEFSQU0odXNlckRhdGEp
OyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kU3VibWl0RXZlbnQoV2ViS2l0OjpXZWJQYWdl
KiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViS2l0OjpXZWJGcmFtZSosIFdlYktpdDo6
V2ViRnJhbWUqLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFdURjo6U3RyaW5nLCBXVEY6OlN0cmlu
Zz4+JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJL
aXQ6OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoV2ViS2l0OjpXZWJQ
YWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mLCBXZWJLaXQ6Oldl
YkZyYW1lKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMo
V2ViS2l0OjpXZWJQYWdlKikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2ls
bEJlZ2luSW5wdXRTZXNzaW9uKFdlYktpdDo6V2ViUGFnZSosIFdlYkNvcmU6OkVsZW1lbnQqLCBX
ZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgUmVmUHRyPEFQSTo6T2Jq
ZWN0PiYgdXNlckRhdGEpIHsgVU5VU0VEX1BBUkFNKHVzZXJEYXRhKTsgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcAppbmRleCAwMmI1YjUzZjJmYWI5
NjZiMzc3MDgwYzQzZjQ1NGM1N2EzOTQ0MmU5Li5kYWE3ZWU1NTdmNTI3OGQwZjAxNjY1NWI2OTgw
NWY1YTkzNDczMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xp
ZW50Ojp3aWxsU3VibWl0Rm9ybShXZWJQYWdlKiBwYWdlLCBIVE1MRm9ybUVsZW1lbnQKICAgICB1
c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCi12b2lkIElu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQ
YWdlKiBwYWdlLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYgZWxlbWVu
dHMpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1D
b250cm9scyhXZWJQYWdlKiBwYWdlLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1l
bnQ+PiYgZWxlbWVudHMsIFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBpZiAoIW1fY2xpZW50LmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9scykKICAgICAgICAgcmV0dXJuOwpAQCAtMTY5LDYgKzE2OSwx
MCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1D
b250cm9scyhXZWJQYWdlKiBwYWdlLCBjb25zdAogICAgICAgICBlbGVtZW50SGFuZGxlcy51bmNo
ZWNrZWRBcHBlbmQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShlbGVtZW50
LmdldCgpKSk7CiAKICAgICBtX2NsaWVudC5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHModG9BUEko
cGFnZSksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKGVsZW1lbnRIYW5kbGVzKSku
cHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisgICAgaWYgKCFtX2NsaWVudC5k
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHNGb3JGcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
Y2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQ
SShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShlbGVtZW50SGFuZGxlcykpLnB0cigpKSwgdG9B
UEkoZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiBib29sIEluamVjdGVk
QnVuZGxlUGFnZUZvcm1DbGllbnQ6OnNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoV2ViUGFnZSog
cGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oCmluZGV4IGU5
ZGY1MzEzZGIwMzA5ZDJiZjYxMDE5MTc3MjNmZmNhMTEzOTQ0MmYuLmUzNWIyMWY1ODc0OGE1NDhk
NWEzMDkzOGJmMDYxZGYxOWI5MTllN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuaApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIEFQSSB7CiAKIHRlbXBs
YXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50QmFzZT4gewot
ICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjAsIFdLQnVuZGxl
UGFnZUZvcm1DbGllbnRWMSwgV0tCdW5kbGVQYWdlRm9ybUNsaWVudFYyPiBWZXJzaW9uczsKKyAg
ICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlRm9ybUNsaWVudFYwLCBXS0J1bmRsZVBh
Z2VGb3JtQ2xpZW50VjEsIFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMiwgV0tCdW5kbGVQYWdlRm9y
bUNsaWVudFYzPiBWZXJzaW9uczsKIH07CiB9CiAKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKFdlYlBhZ2UqLCBXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50KiwgSW5wdXRGaWVsZEFjdGlvbiwgV2ViRnJhbWUqKSBvdmVycmlk
ZTsgICAgCiAgICAgdm9pZCB3aWxsU3VibWl0Rm9ybShXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTEZv
cm1FbGVtZW50KiwgV2ViRnJhbWUqLCBXZWJGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJE
YXRhKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZW5kU3VibWl0RXZlbnQoV2ViUGFnZSosIFdl
YkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1lKiwgV2ViRnJhbWUqIHNvdXJjZUZyYW1l
LCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJl
ZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEFzc29jaWF0
ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVt
ZW50Pj4mLCBXZWJGcmFtZSopIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3Jt
Q2hhbmdlcyhXZWJQYWdlKikgb3ZlcnJpZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IDliYWE4NGQzOGFlMDgwMTExOGExMmI4MWUyMDRlYTJlOGYwZTllZjQuLmQ1NTEyMTk0YWIy
MWZmZjc0Yjc4YjUxZTgwNWU5M2YwY2U2ZmM3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC04NDUsOSArODQ1LDExIEBAIFJlZlB0cjxJY29uPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUlj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzCiAKICNlbmRpZgogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8RWxlbWVudD4+JiBlbGVtZW50cykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1l
bnRzLCBXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5pbmplY3Rl
ZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoJm1fcGFnZSwgZWxl
bWVudHMpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1l
KGZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworICAgIHJldHVybiBtX3BhZ2UuaW5qZWN0
ZWRCdW5kbGVGb3JtQ2xpZW50KCkuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKCZtX3BhZ2UsIGVs
ZW1lbnRzLCB3ZWJGcmFtZSk7CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGROb3Rp
ZnlPbkZvcm1DaGFuZ2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3MDViMjVlOWZjOTEyYTYz
YjViNDU3N2VmMmI4ZDVlMDcxN2EzNTQwLi5iZWRhMWExN2RiMGQyNjgzY2UzNDZiNzIwNmVkOWMy
MWJlOTExZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMDAsNyArMjAwLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgZmluYWw7CiAjZW5kaWYKIAotICAg
IHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29y
ZTo6RWxlbWVudD4+JikgZmluYWw7CisgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMo
Y29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mLCBXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOwogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIGZpbmFsOwogCiAg
ICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDljMzA3ZDM5
ZWI4YTYyMmRjMjMyZjhiOWFjN2VlNGVkOTA4MjI3ZmIuLmUzYjFhODNkMjQ0M2ZlOGRiNzFkZjA1
OGMzMTNiYjA1OGJhNDNmNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0yOCAgTWljaGFlbCBDYXRhbnph
cm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1bR1RLXSBBZGQgV2Vi
S2l0V2ViUGFnZTo6ZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLWZvci1mcmFtZSBhbmQgZGVw
cmVjYXRlIG9yaWdpbmFsIGRpZC1hc3NvY2lhdGUtZm9ybS1jb250cm9scworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MjcxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6CisgICAgICAgIChmb3JtQ29udHJvbHNB
c3NvY2lhdGVkRm9yRnJhbWVDYWxsYmFjayk6CisgICAgICAgIChwYWdlQ3JlYXRlZENhbGxiYWNr
KToKKyAgICAgICAgKGZvcm1Db250cm9sc0Fzc29jaWF0ZWRDYWxsYmFjayk6IERlbGV0ZWQuCisK
IDIwMTktMDQtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBb
V0tUUl0gTW92ZSB0ZXN0IHRpbWVvdXQgaGFuZGxpbmcgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lv
blRlc3QuY3BwCmluZGV4IDI2NjQ1NTUyM2NjZTFmYjNiZGM4ODhjYzFlYWZjY2U5ODE2YjFlNzcu
LjFhNTY1ODQ0ZGFhMDJiYTYyYTlhY2VlNjk2ZWY1MDViNDE2NDAxMmEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVz
dC5jcHAKQEAgLTMxNiw5ICszMTYsOCBAQCBzdGF0aWMgdm9pZCBlbWl0Rm9ybUNvbnRyb2xzQXNz
b2NpYXRlZChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqCiAgICAgZ19h
c3NlcnRfdHJ1ZShvayk7CiB9CiAKLXN0YXRpYyB2b2lkIGZvcm1Db250cm9sc0Fzc29jaWF0ZWRD
YWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUHRyQXJyYXkqIGZvcm1FbGVtZW50cywg
V2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCitzdGF0aWMgdm9pZCBmb3JtQ29udHJvbHNB
c3NvY2lhdGVkRm9yRnJhbWVDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUHRyQXJy
YXkqIGZvcm1FbGVtZW50cywgV2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXRXZWJFeHRlbnNpb24q
IGV4dGVuc2lvbikKIHsKLSAgICBhdXRvKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFp
bl9mcmFtZSh3ZWJQYWdlKTsKICAgICBHU3RyaW5nKiBmb3JtSWRzQnVpbGRlciA9IGdfc3RyaW5n
X25ldyhudWxscHRyKTsKICAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwgZm9ybUVsZW1lbnRzLT5s
ZW47ICsraSkgewogICAgICAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9ET01fSVNfRUxFTUVOVChn
X3B0cl9hcnJheV9pbmRleChmb3JtRWxlbWVudHMsIGkpKSk7CkBAIC00MTMsNyArNDEyLDcgQEAg
c3RhdGljIHZvaWQgcGFnZUNyZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVu
c2lvbiwgV2ViS2l0V2ViUGFnZSogd2UKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJz
ZW5kLXJlcXVlc3QiLCBHX0NBTExCQUNLKHNlbmRSZXF1ZXN0Q2FsbGJhY2spLCBudWxscHRyKTsK
ICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJjb25zb2xlLW1lc3NhZ2Utc2VudCIsIEdf
Q0FMTEJBQ0soY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2spLCBudWxscHRyKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0KHdlYlBhZ2UsICJjb250ZXh0LW1lbnUiLCBHX0NBTExCQUNLKGNvbnRleHRN
ZW51Q2FsbGJhY2spLCBudWxscHRyKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJm
b3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQiLCBHX0NBTExCQUNLKGZvcm1Db250cm9sc0Fzc29jaWF0
ZWRDYWxsYmFjayksIGV4dGVuc2lvbik7CisgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAi
Zm9ybS1jb250cm9scy1hc3NvY2lhdGVkLWZvci1mcmFtZSIsIEdfQ0FMTEJBQ0soZm9ybUNvbnRy
b2xzQXNzb2NpYXRlZEZvckZyYW1lQ2FsbGJhY2spLCBleHRlbnNpb24pOwogICAgIGdfc2lnbmFs
X2Nvbm5lY3Qod2ViUGFnZSwgIndpbGwtc3VibWl0LWZvcm0iLCBHX0NBTExCQUNLKHdpbGxTdWJt
aXRGb3JtQ2FsbGJhY2spLCBleHRlbnNpb24pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368434</attachid>
            <date>2019-04-28 11:44:54 -0700</date>
            <delta_ts>2019-05-07 07:26:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20733</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE4ZTRkYzQ3ZGUxYmUw
YzJhZGYxYjhiYjJjOWZkYTU3NjkxOGIwZS4uZTg5MjY0OGJhZjE3NWY4MmExYTZkMTVmODQyN2Uy
Zjg5YzAzYmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTI4ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtH
VEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9yLWZy
YW1lIGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzVGltZXJGaXJlZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTktMDQtMjcgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBzb21lIENvbXBvc2l0aW5n
IGxvZ2dpbmcgdG8gdGhlIExheWVycyBsb2cgY2hhbm5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzNDMzZTI1MzA3
MjgxNDg2YWNhOTVhOTAxYWU4NzNjODk0ZWI2ZTAzLi4wNWQwMjNjOWYyN2RjMmFkNzZlMTIxYzBl
NmRkYjAzMTY3YWZiOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA0LTI4ICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BF
XVtHVEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9y
LWZyYW1lIGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3BhZ2VfY2xhc3NfaW5pdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyIF9zZXRGb3JtRGVsZWdhdGU6XSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaDoKKyAgICAg
ICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250
cm9scyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
CiAyMDE5LTA0LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
SW1wcm92ZSBzYWZldHkgb2YgTWFjaE1lc3NhZ2UgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDE3OTRiZWQ3NWE1YmQ5NjAwMzMxZDI1MjBmMjZiMGVjNzBjZDBmMjEuLjU5NTQwZDBj
MmVmYjY3ODVkMDJlZWFkMjkxOGQ1MWU3OTlmOTc0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNzAwMyw4ICs3MDAzLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyRmlyZWQoKQogewogICAgIGF1dG8gdmVjdG9yID0gY29weVRvVmVjdG9yKG1f
YXNzb2NpYXRlZEZvcm1Db250cm9scyk7CiAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNs
ZWFyKCk7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyh2ZWN0b3IpOworICAg
IGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIEFTU0VSVChtX2ZyYW1l
KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKHZlY3RvciwgKm1fZnJhbWUpOworICAgIH0KIH0KIAogdm9pZCBEb2N1bWVudDo6c2V0Q2Fj
aGVkRE9NQ29va2llcyhjb25zdCBTdHJpbmcmIGNvb2tpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKaW5kZXggNmE2NjNmODI2ZjNhZTQ5YzhjMDViZjAzZTMwNjJlZDdiYjE4NTYz
MC4uZDQ1MjI4ZWVkMjBlYjk5NWY1ZGYyYTQ2MmZiNGUzNGI3M2I5OGYzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTk0LDcgKzE5NCw3IEBAIGNsYXNzIEVtcHR5Q2hy
b21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgCiAgICAgYm9vbCBpc0VtcHR5
Q2hyb21lQ2xpZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBk
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mKSBm
aW5hbCB7IH0KKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8
UmVmUHRyPEVsZW1lbnQ+PiYsIEZyYW1lJikgZmluYWwgeyB9CiAgICAgYm9vbCBzaG91bGROb3Rp
ZnlPbkZvcm1DaGFuZ2VzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFJlZlB0cjxJ
Y29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qIGZpbGVuYW1l
cyAqLykgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKaW5kZXggY2RkZjEzY2FlODg5MzBlMjM2ZTk0MDlmOTJlZmMyZmZkNDBiZjVkOS4uYThjZjhl
ZWZhZGNlY2VhMjg0ZDcxOGM3NWY4NmI4MDUwMDhhNmE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCkBAIC00MjYsNyArNDI2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5n
IHBsdWdJbkV4dHJhU3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAg
dmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25zdCB7IHJldHVybiBTdHJpbmco
KTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiwgRnJhbWUmKSB7
IH07CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVy
biBmYWxzZTsgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihHcmFwaGlj
c0xheWVyJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaApp
bmRleCAzZmMzM2I5OGQxNjZmMjA1NmQ5YmE3MGU5NmJmZmU1ZmRkNjhiZmEyLi4zNjJhNDRkZmEw
YzM3NjQ0YmE3ZDA3M2I0Mjc0NWU1M2E3ODNjNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VGb3JtQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0sKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEZvY3VzVGV4dEZpZWxkQ2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0
RWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGROb3RpZnlPbkZvcm1DaGFu
Z2VzQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0Nh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tBcnJheVJlZiBlbGVtZW50SGFuZGxlcywg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHNGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tBcnJheVJlZiBlbGVtZW50SGFuZGxlcywgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1D
bGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CkBAIC05Miw0ICs5MywyNyBAQCB0
eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjIgewogICAgIFdLQnVuZGxlUGFn
ZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzOwogfSBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjI7CiAK
K3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMyB7CisgICAgV0tCdW5kbGVQ
YWdlRm9ybUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZVRleHRGaWVsZERp
ZEJlZ2luRWRpdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkRGlk
QmVnaW5FZGl0aW5nOworICAgIFdLQnVuZGxlUGFnZVRleHRGaWVsZERpZEVuZEVkaXRpbmdDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkRGlkRW5kRWRpdGluZzsKKyAg
ICBXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZDsKKyAgICBXS0J1bmRsZVBhZ2VU
ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHREaWRDaGFuZ2VJblRleHRBcmVhOworICAgIFdLQnVuZGxlUGFnZVNob3VsZFBlcmZvcm1BY3Rp
b25JblRleHRGaWVsZENhbGxiYWNrICAgICAgICAgICAgICAgICAgc2hvdWxkUGVyZm9ybUFjdGlv
bkluVGV4dEZpZWxkOworICAgIFdLQnVuZGxlUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFN1Ym1pdEZvcm07CisKKyAgICAvLyBW
ZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsU2VuZFN1Ym1pdEV2ZW50OworCisgICAgLy8g
dmVyc2lvbiAyLgorICAgIFdLQnVuZGxlUGFnZURpZEZvY3VzVGV4dEZpZWxkQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRm9jdXNUZXh0RmllbGQ7CisgICAgV0tCdW5k
bGVQYWdlU2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlc0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOworICAgIFdLQnVuZGxlUGFnZURpZEFzc29j
aWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzOworCisgICAgLy8gdmVyc2lvbiAzLgorICAgIFdLQnVuZGxlUGFnZURp
ZEFzc29jaWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzRm9yRnJhbWU7Cit9IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRW
MzsKKwogI2VuZGlmIC8vIFdLQnVuZGxlUGFnZUZvcm1DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDQ3ZjBmMDRjZTdmOTA1ZDJiNTIyMTcxNTZlNWM4NDgx
YWUzY2E2YTIuLjAyZDY4YjY3MTEyNTBlZmMwZjhmYzY4MmQzZThmMzc1Y2M3MzZjNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9X
ZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAgZW51bSB7
CiAgICAgQ09OVEVYVF9NRU5VLAogICAgIENPTlNPTEVfTUVTU0FHRV9TRU5ULAogICAgIEZPUk1f
Q09OVFJPTFNfQVNTT0NJQVRFRCwKKyAgICBGT1JNX0NPTlRST0xTX0FTU09DSUFURURfRk9SX0ZS
QU1FLAogICAgIFdJTExfU1VCTUlUX0ZPUk0sCiAKICAgICBMQVNUX1NJR05BTApAQCAtMzgwLDEz
ICszODEsMTQgQEAgcHVibGljOgogICAgICAgICBmaXJlRm9ybVN1Ym1pc3Npb25FdmVudChXRUJL
SVRfRk9STV9TVUJNSVNTSU9OX1dJTExfU0VORF9ET01fRVZFTlQsIGZvcm1FbGVtZW50LCBmcmFt
ZSwgc291cmNlRnJhbWUsIHZhbHVlcyk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRBc3NvY2lhdGVG
b3JtQ29udHJvbHMoV2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiBlbGVt
ZW50cykgb3ZlcnJpZGUKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdl
KiwgY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1lbnRzLCBXZWJGcmFtZSogZnJh
bWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBHUmVmUHRyPEdQdHJBcnJheT4gZm9ybUVsZW1l
bnRzID0gYWRvcHRHUmVmKGdfcHRyX2FycmF5X3NpemVkX25ldyhlbGVtZW50cy5zaXplKCkpKTsK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbGVtZW50cy5zaXplKCk7ICsraSkKICAg
ICAgICAgICAgIGdfcHRyX2FycmF5X2FkZChmb3JtRWxlbWVudHMuZ2V0KCksIFdlYktpdDo6a2l0
KGVsZW1lbnRzW2ldLmdldCgpKSk7CiAKICAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2Us
IHNpZ25hbHNbRk9STV9DT05UUk9MU19BU1NPQ0lBVEVEXSwgMCwgZm9ybUVsZW1lbnRzLmdldCgp
KTsKKyAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25hbHNbRk9STV9DT05UUk9M
U19BU1NPQ0lBVEVEX0ZPUl9GUkFNRV0sIDAsIGZvcm1FbGVtZW50cy5nZXQoKSwgd2Via2l0RnJh
bWVHZXRPckNyZWF0ZShmcmFtZSkpOwogICAgIH0KIAogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25G
b3JtQ2hhbmdlcyhXZWJQYWdlKikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTY1LDE2
ICs1NjcsNDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQoV2ViS2l0
V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgKiBrZWVwIHRoZW0gYWxpdmUgYWZ0ZXIgdGhlIHNp
Z25hbCBoYW5kbGVyIHJldHVybnMuCiAgICAgICoKICAgICAgKiBTaW5jZTogMi4xNgorICAgICAq
CisgICAgICogRGVwcmVjYXRlZDogMi4yNiwgdXNlIFdlYktpdFdlYlBhZ2U6OmZvcm0tY29udHJv
bHMtYXNzb2NpYXRlZC1mb3ItZnJhbWUgaW5zdGVhZC4KICAgICAgKi8KICAgICBzaWduYWxzW0ZP
Uk1fQ09OVFJPTFNfQVNTT0NJQVRFRF0gPSBnX3NpZ25hbF9uZXcoCiAgICAgICAgICJmb3JtLWNv
bnRyb2xzLWFzc29jaWF0ZWQiLAogICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhrbGFzcyksCi0g
ICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAorICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxh
Z3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfREVQUkVDQVRFRCksCiAgICAgICAgIDAs
IDAsIG51bGxwdHIsCiAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19CT1hFRCwKICAg
ICAgICAgR19UWVBFX05PTkUsIDEsCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVkpOwogCisgICAg
LyoqCisgICAgICogV2ViS2l0V2ViUGFnZTo6Zm9ybS1jb250cm9scy1hc3NvY2lhdGVkLWZvci1m
cmFtZToKKyAgICAgKiBAd2ViX3BhZ2U6IHRoZSAjV2ViS2l0V2ViUGFnZSBvbiB3aGljaCB0aGUg
c2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZWxlbWVudHM6IChlbGVtZW50LXR5cGUgV2ViS2l0
RE9NRWxlbWVudCkgKHRyYW5zZmVyIG5vbmUpOiBhICNHUHRyQXJyYXkgb2YKKyAgICAgKiAgICAg
I1dlYktpdERPTUVsZW1lbnQgd2l0aCB0aGUgbGlzdCBvZiBmb3JtcyBpbiB0aGUgcGFnZQorICAg
ICAqIEBmcmFtZTogdGhlICNXZWJLaXRGcmFtZQorICAgICAqCisgICAgICogRW1pdHRlZCBhZnRl
ciBmb3JtIGVsZW1lbnRzIChvciBmb3JtIGFzc29jaWF0ZWQgZWxlbWVudHMpIGFyZSBhc3NvY2lh
dGVkIHRvIGEgcGFydGljdWxhciB3ZWIKKyAgICAgKiBwYWdlLiBUaGlzIGlzIHVzZWZ1bCB0byBp
bXBsZW1lbnQgZm9ybSBhdXRvIGZpbGxpbmcgZm9yIHdlYiBwYWdlcyB3aGVyZSBmb3JtIGZpZWxk
cyBhcmUgYWRkZWQKKyAgICAgKiBkeW5hbWljYWxseS4gVGhpcyBzaWduYWwgbWlnaHQgYmUgZW1p
dHRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgd2ViIHBhZ2UuCisgICAgICoKKyAgICAg
KiBOb3RlIHRoYXQgdGhpcyBzaWduYWwgY291bGQgYmUgYWxzbyBlbWl0dGVkIHdoZW4gZm9ybSBj
b250cm9scyBhcmUgbW92ZWQgYmV0d2VlbiBmb3Jtcy4gSW4KKyAgICAgKiB0aGF0IGNhc2UsIHRo
ZSBAZWxlbWVudHMgYXJyYXkgY2FycmllcyB0aGUgbGlzdCBvZiB0aG9zZSBlbGVtZW50cyB3aGlj
aCBoYXZlIG1vdmVkLgorICAgICAqCisgICAgICogQ2xpZW50cyBzaG91bGQgdGFrZSBhIHJlZmVy
ZW5jZSB0byB0aGUgbWVtYmVycyBvZiB0aGUgQGVsZW1lbnRzIGFycmF5IGlmIGl0IGlzIGRlc2ly
ZWQgdG8KKyAgICAgKiBrZWVwIHRoZW0gYWxpdmUgYWZ0ZXIgdGhlIHNpZ25hbCBoYW5kbGVyIHJl
dHVybnMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi4yNgorICAgICAqLworICAgIHNpZ25hbHNb
Rk9STV9DT05UUk9MU19BU1NPQ0lBVEVEX0ZPUl9GUkFNRV0gPSBnX3NpZ25hbF9uZXcoCisgICAg
ICAgICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtZm9yLWZyYW1lIiwKKyAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAg
MCwgMCwgbnVsbHB0ciwKKyAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMsCisgICAg
ICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHX1RZUEVfUFRSX0FSUkFZLAorICAgICAgICBX
RUJLSVRfVFlQRV9GUkFNRSk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJQYWdlOjp3aWxs
LXN1Ym1pdC1mb3JtOgogICAgICAqIEB3ZWJfcGFnZTogdGhlICNXZWJLaXRXZWJQYWdlIG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
CmluZGV4IDgwY2FhMmQ1OTdmNTE3ZTNlODYxMTk3MTgzMjM3YzExNjJkYjRkYmYuLjExYTdiY2Rh
NjE5ZDRhZjYxNzMyM2JkMzRiYzdmNGQzMzcxOGVmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIubW0KQEAgLTUyNiw3ICs1MjYsNyBAQCAtICh2b2lkKV9zZXRGb3JtRGVsZWdhdGU6
KGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlPilmb3JtRGVsZWdhdAog
ICAgICAgICAgICAgcmV0dXJuIFtmb3JtRGVsZWdhdGUgX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXJTaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOm1fY29udHJvbGxlcl07
CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJL
aXQ6OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYgZWxl
bWVudHMpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdl
YktpdDo6V2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JiBl
bGVtZW50cywgV2ViS2l0OjpXZWJGcmFtZSopIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGF1dG8gZm9ybURlbGVnYXRlID0gbV9jb250cm9sbGVyLT5fZm9ybURlbGVnYXRlLmdldCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmgKaW5kZXggOTJlYmNm
ZTAxM2NjMzc5ODk2ZGI3ZjE0MzM5MzcxMGNkNWIxMmVlOS4uMDM5NWIzMjNmNzYwMTIzYTA3YmEw
OTZlNDJiOThkYmUxOGQyZjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1D
bGllbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChXZWJLaXQ6OldlYlBhZ2UqLCBXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50KiwgSW5wdXRGaWVsZEFjdGlvbiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYktpdDo6V2Vi
UGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYktpdDo6V2ViRnJhbWUqLCBXZWJL
aXQ6OldlYkZyYW1lKiwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxXVEY6OlN0cmluZywgV1RGOjpT
dHJpbmc+PiYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKSB7IFVOVVNFRF9QQVJBTSh1
c2VyRGF0YSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRTdWJtaXRFdmVudChXZWJLaXQ6
OldlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBXZWJLaXQ6OldlYkZyYW1lKiwg
V2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8V1RGOjpTdHJpbmcsIFdU
Rjo6U3RyaW5nPj4mKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVu
dD4+JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJL
aXQ6OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYsIFdl
YktpdDo6V2ViRnJhbWUqKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3Jt
Q2hhbmdlcyhXZWJLaXQ6OldlYlBhZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dm9pZCB3aWxsQmVnaW5JbnB1dFNlc3Npb24oV2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6RWxl
bWVudCosIFdlYktpdDo6V2ViRnJhbWUqLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBSZWZQdHI8
QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgeyBVTlVTRURfUEFSQU0odXNlckRhdGEpOyB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCmluZGV4IDAyYjVi
NTNmMmZhYjk2NmIzNzcwODBjNDNmNDU0YzU3YTM5NDQyZTkuLmRhYTdlZTU1N2Y1Mjc4ZDBmMDE2
NjU1YjY5ODA1ZjVhOTM0NzMzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
Rm9ybUNsaWVudC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVu
dAogICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7CiB9CiAK
LXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+
JiBlbGVtZW50cykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6ZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29y
ZTo6RWxlbWVudD4+JiBlbGVtZW50cywgV2ViRnJhbWUqIGZyYW1lKQogewogICAgIGlmICghbV9j
bGllbnQuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKQogICAgICAgICByZXR1cm47CkBAIC0xNjks
NiArMTY5LDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6ZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0CiAgICAgICAgIGVsZW1lbnRIYW5k
bGVzLnVuY2hlY2tlZEFwcGVuZChJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRl
KGVsZW1lbnQuZ2V0KCkpKTsKIAogICAgIG1fY2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9s
cyh0b0FQSShwYWdlKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1vdmUoZWxlbWVudEhh
bmRsZXMpKS5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisKKyAgICBpZiAoIW1f
Y2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lKQorICAgICAgICByZXR1cm47
CisgICAgbV9jbGllbnQuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzRm9yRnJhbWUodG9BUEkocGFn
ZSksIHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKGVsZW1lbnRIYW5kbGVzKSkucHRy
KCkpLCB0b0FQSShmcmFtZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKIGJvb2wg
SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyhX
ZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgK
aW5kZXggZTlkZjUzMTNkYjAzMDlkMmJmNjEwMTkxNzcyM2ZmY2ExMTM5NDQyZi4uZTM1YjIxZjU4
NzQ4YTU0OGQ1YTMwOTM4YmYwNjFkZjE5YjkxOWU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5oCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgQVBJIHsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUZvcm1DbGllbnRC
YXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMCwg
V0tCdW5kbGVQYWdlRm9ybUNsaWVudFYxLCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjI+IFZlcnNp
b25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjAsIFdL
QnVuZGxlUGFnZUZvcm1DbGllbnRWMSwgV0tCdW5kbGVQYWdlRm9ybUNsaWVudFYyLCBXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50VjM+IFZlcnNpb25zOwogfTsKIH0KIApAQCAtNTEsNyArNTEsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQoV2ViUGFnZSos
IFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqLCBJbnB1dEZpZWxkQWN0aW9uLCBXZWJGcmFtZSop
IG92ZXJyaWRlOyAgICAKICAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqLCBXZWJDb3Jl
OjpIVE1MRm9ybUVsZW1lbnQqLCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29u
c3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiwgUmVmUHRyPEFQSTo6T2JqZWN0
PiYgdXNlckRhdGEpIG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbFNlbmRTdWJtaXRFdmVudChXZWJQ
YWdlKiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViRnJhbWUqLCBXZWJGcmFtZSogc291
cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYpIG92ZXJy
aWRlOwotICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqLCBjb25zdCBW
ZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNv
cmU6OkVsZW1lbnQ+PiYsIFdlYkZyYW1lKikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGROb3Rp
ZnlPbkZvcm1DaGFuZ2VzKFdlYlBhZ2UqKSBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggOWJhYTg0ZDM4YWUwODAxMTE4YTEyYjgxZTIwNGVhMmU4ZjBlOWVmNC4uZDU1
MTIxOTRhYjIxZmZmNzRiNzhiNTFlODA1ZTkzZjBjZTZmYzcyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTg0NSw5ICs4NDUsMTEgQEAgUmVmUHRyPEljb24+IFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMKIAogI2Vu
ZGlmCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29u
c3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1lbnRzKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+
PiYgZWxlbWVudHMsIFdlYkNvcmU6OkZyYW1lJiBmcmFtZSkKIHsKLSAgICByZXR1cm4gbV9wYWdl
LmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLmRpZEFzc29jaWF0ZUZvcm1Db250cm9scygmbV9w
YWdlLCBlbGVtZW50cyk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpOworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisgICAgcmV0dXJuIG1fcGFn
ZS5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoJm1f
cGFnZSwgZWxlbWVudHMsIHdlYkZyYW1lKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNo
b3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDcwNWIyNWU5
ZmM5MTJhNjNiNWI0NTc3ZWYyYjhkNWUwNzE3YTM1NDAuLmJlZGExYTE3ZGIwZDI2ODNjZTM0NmI3
MjA2ZWQ5YzIxYmU5MTFlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIwMCw3ICsyMDAsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBmaW5hbDsKICNlbmRp
ZgogCi0gICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0
cjxXZWJDb3JlOjpFbGVtZW50Pj4mKSBmaW5hbDsKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1D
b250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYsIFdlYkNvcmU6
OkZyYW1lJikgZmluYWw7CiAgICAgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgZmlu
YWw7CiAKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
OWMzMDdkMzllYjhhNjIyZGMyMzJmOGI5YWM3ZWU0ZWQ5MDgyMjdmYi4uZTNiMWE4M2QyNDQzZmU4
ZGI3MWRmMDU4YzMxM2JiMDU4YmE0M2Y3OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA0LTI4ICBNaWNoYWVs
IENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtd
IEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9yLWZyYW1l
IGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcDoKKyAgICAgICAgKGZvcm1D
b250cm9sc0Fzc29jaWF0ZWRGb3JGcmFtZUNhbGxiYWNrKToKKyAgICAgICAgKHBhZ2VDcmVhdGVk
Q2FsbGJhY2spOgorICAgICAgICAoZm9ybUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKTogRGVs
ZXRlZC4KKwogMjAxOS0wNC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXS1RSXSBNb3ZlIHRlc3QgdGltZW91dCBoYW5kbGluZyB0byB0aGUgVUlQcm9jZXNz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0
ZW5zaW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2Vi
RXh0ZW5zaW9uVGVzdC5jcHAKaW5kZXggMjY2NDU1NTIzY2NlMWZiM2JkYzg4OGNjMWVhZmNjZTk4
MTZiMWU3Ny4uMWE1NjU4NDRkYWEwMmJhNjJhOWFjZWU2OTZlZjUwNWI0MTY0MDEyYSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRl
c3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRl
bnNpb25UZXN0LmNwcApAQCAtMzE2LDkgKzMxNiw4IEBAIHN0YXRpYyB2b2lkIGVtaXRGb3JtQ29u
dHJvbHNBc3NvY2lhdGVkKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgY2hhcioK
ICAgICBnX2Fzc2VydF90cnVlKG9rKTsKIH0KIAotc3RhdGljIHZvaWQgZm9ybUNvbnRyb2xzQXNz
b2NpYXRlZENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIEdQdHJBcnJheSogZm9ybUVs
ZW1lbnRzLCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKK3N0YXRpYyB2b2lkIGZvcm1D
b250cm9sc0Fzc29jaWF0ZWRGb3JGcmFtZUNhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2Us
IEdQdHJBcnJheSogZm9ybUVsZW1lbnRzLCBXZWJLaXRGcmFtZSogZnJhbWUsIFdlYktpdFdlYkV4
dGVuc2lvbiogZXh0ZW5zaW9uKQogewotICAgIGF1dG8qIGZyYW1lID0gd2Via2l0X3dlYl9wYWdl
X2dldF9tYWluX2ZyYW1lKHdlYlBhZ2UpOwogICAgIEdTdHJpbmcqIGZvcm1JZHNCdWlsZGVyID0g
Z19zdHJpbmdfbmV3KG51bGxwdHIpOwogICAgIGZvciAoZ3VpbnQgaSA9IDA7IGkgPCBmb3JtRWxl
bWVudHMtPmxlbjsgKytpKSB7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoV0VCS0lUX0RPTV9JU19F
TEVNRU5UKGdfcHRyX2FycmF5X2luZGV4KGZvcm1FbGVtZW50cywgaSkpKTsKQEAgLTQxMyw3ICs0
MTIsNyBAQCBzdGF0aWMgdm9pZCBwYWdlQ3JlYXRlZENhbGxiYWNrKFdlYktpdFdlYkV4dGVuc2lv
biogZXh0ZW5zaW9uLCBXZWJLaXRXZWJQYWdlKiB3ZQogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Vi
UGFnZSwgInNlbmQtcmVxdWVzdCIsIEdfQ0FMTEJBQ0soc2VuZFJlcXVlc3RDYWxsYmFjayksIG51
bGxwdHIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgImNvbnNvbGUtbWVzc2FnZS1z
ZW50IiwgR19DQUxMQkFDSyhjb25zb2xlTWVzc2FnZVNlbnRDYWxsYmFjayksIG51bGxwdHIpOwog
ICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgImNvbnRleHQtbWVudSIsIEdfQ0FMTEJBQ0so
Y29udGV4dE1lbnVDYWxsYmFjayksIG51bGxwdHIpOwotICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Vi
UGFnZSwgImZvcm0tY29udHJvbHMtYXNzb2NpYXRlZCIsIEdfQ0FMTEJBQ0soZm9ybUNvbnRyb2xz
QXNzb2NpYXRlZENhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHdl
YlBhZ2UsICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtZm9yLWZyYW1lIiwgR19DQUxMQkFDSyhm
b3JtQ29udHJvbHNBc3NvY2lhdGVkRm9yRnJhbWVDYWxsYmFjayksIGV4dGVuc2lvbik7CiAgICAg
Z19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAid2lsbC1zdWJtaXQtZm9ybSIsIEdfQ0FMTEJBQ0so
d2lsbFN1Ym1pdEZvcm1DYWxsYmFjayksIGV4dGVuc2lvbik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369281</attachid>
            <date>2019-05-07 07:26:43 -0700</date>
            <delta_ts>2019-05-07 11:14:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197271-20190507092642.patch</filename>
            <type>text/plain</type>
            <size>20974</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYxNzdkMDQ4MGMwZWU1
Zjk4MmJiZWY4ZmQzOGQxNmZmMDUxYmJlZS4uYmYyNGRlNGZiNjZiNjc5NmMxZGQ0YjE1M2NhNjcz
ODYwNjcwYTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA1LTA3ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtH
VEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9yLWZy
YW1lIGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzVGltZXJGaXJlZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTktMDUtMDcgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIDxib2R5PiB3aXRoIG92ZXJmbG93OmhpZGRl
biBDU1MgaXMgc2Nyb2xsYWJsZSBvbiBpT1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzNlZmYxNDY1ZmMwMGRlNDY3
OWRiODU0NDYwYzI5NzJlMGQ0YjFmOS4uMTcyY2MwZTllN2EwODkxNDI1ZDYzMWU1ODFkMmFlMTE5
MTFjMmQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxOS0wNS0wNyAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1bR1RLXSBB
ZGQgV2ViS2l0V2ViUGFnZTo6ZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLWZvci1mcmFtZSBh
bmQgZGVwcmVjYXRlIG9yaWdpbmFsIGRpZC1hc3NvY2lhdGUtZm9ybS1jb250cm9scworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MjcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwOgorICAg
ICAgICAod2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIubW06CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciBfc2V0Rm9ybURlbGVnYXRlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50Lmg6CisgICAgICAgIChBUEk6
OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9y
bUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxOS0w
NS0wNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgPGJvZHk+
IHdpdGggb3ZlcmZsb3c6aGlkZGVuIENTUyBpcyBzY3JvbGxhYmxlIG9uIGlPUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggY2U0MjkyNzdjN2VhYzYwMDIyMzc1ZDljYjg5ZThkNjUxZDQzZGFh
MC4uNzc5MWEzNjg1MzE1MTVlMzI5NjBlNjE2ZDVmZTI5NWVjMjg3ZGE5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC02OTU5LDggKzY5NTksMTAgQEAgdm9pZCBEb2N1bWVudDo6ZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZCgpCiB7CiAgICAgYXV0byB2ZWN0b3IgPSBjb3B5
VG9WZWN0b3IobV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzKTsKICAgICBtX2Fzc29jaWF0ZWRGb3Jt
Q29udHJvbHMuY2xlYXIoKTsKLSAgICBpZiAoYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKLSAg
ICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKHZl
Y3Rvcik7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpIHsKKyAgICAgICAgQVNT
RVJUKG1fZnJhbWUpOworICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5kaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHModmVjdG9yLCAqbV9mcmFtZSk7CisgICAgfQogfQogCiB2b2lkIERvY3Vt
ZW50OjpzZXRDYWNoZWRET01Db29raWVzKGNvbnN0IFN0cmluZyYgY29va2llcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA2YTY2M2Y4MjZmM2FlNDljOGMwNWJmMDNlMzA2
MmVkN2JiMTg1NjMwLi5kNDUyMjhlZWQyMGViOTk1ZjVkZjJhNDYyZmI0ZTM0YjczYjk4ZjM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xOTQsNyArMTk0LDcgQEAgY2xh
c3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICAKICAgICBi
b29sIGlzRW1wdHlDaHJvbWVDbGllbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPEVs
ZW1lbnQ+PiYpIGZpbmFsIHsgfQorICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiwgRnJhbWUmKSBmaW5hbCB7IH0KICAgICBib29s
IHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgUmVmUHRyPEljb24+IGNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
LyogZmlsZW5hbWVzICovKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaAppbmRleCBjZGRmMTNjYWU4ODkzMGUyMzZlOTQwOWY5MmVmYzJmZmQ0MGJm
NWQ5Li5hOGNmOGVlZmFkY2VjZWEyODRkNzE4Yzc1Zjg2YjgwNTAwOGE2YTdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQyNiw3ICs0MjYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gU3RyaW5n
KCk7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IHsgcmV0
dXJuIFN0cmluZygpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JikgeyB9OworICAgIHZpcnR1YWwgdm9p
ZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4m
LCBGcmFtZSYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxh
eWVyKEdyYXBoaWNzTGF5ZXImKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9y
bUNsaWVudC5oCmluZGV4IDNmYzMzYjk4ZDE2NmYyMDU2ZDliYTcwZTk2YmZmZTVmZGQ2OGJmYTIu
LjM2MmE0NGRmYTBjMzc2NDRiYTdkMDczYjQyNzQ1ZTUzYTc4M2M3OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VG
b3JtQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaApAQCAtMzksNiArMzksNyBAQCB0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsU2VuZFN1Ym1pdEV2ZW50Q2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXSwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRm9jdXNUZXh0
RmllbGRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9kZUhhbmRsZVJl
ZiBodG1sSW5wdXRFbGVtZW50SGFuZGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZE5vdGlm
eU9uRm9ybUNoYW5nZXNDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0FycmF5UmVmIGVsZW1l
bnRIYW5kbGVzLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVu
ZGxlUGFnZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS0FycmF5UmVmIGVsZW1lbnRIYW5kbGVzLCBXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5k
bGVQYWdlRm9ybUNsaWVudEJhc2UgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTkyLDQg
KzkzLDI3IEBAIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMiB7CiAgICAg
V0tCdW5kbGVQYWdlRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHM7CiB9IFdLQnVuZGxlUGFnZUZvcm1D
bGllbnRWMjsKIAordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRm9ybUNsaWVudFYzIHsKKyAg
ICBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdl
VGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0RmllbGREaWRCZWdpbkVkaXRpbmc7CisgICAgV0tCdW5kbGVQYWdlVGV4dEZpZWxkRGlkRW5k
RWRpdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGREaWRFbmRF
ZGl0aW5nOworICAgIFdLQnVuZGxlUGFnZVRleHREaWRDaGFuZ2VJblRleHRGaWVsZENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dERpZENoYW5nZUluVGV4dEZpZWxkOworICAgIFdL
QnVuZGxlUGFnZVRleHREaWRDaGFuZ2VJblRleHRBcmVhQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgdGV4dERpZENoYW5nZUluVGV4dEFyZWE7CisgICAgV0tCdW5kbGVQYWdlU2hvdWxk
UGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICBzaG91bGRQ
ZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQ7CisgICAgV0tCdW5kbGVQYWdlV2lsbFN1Ym1pdEZvcm1D
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsU3VibWl0Rm9ybTsK
KworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS0J1bmRsZVBhZ2VXaWxsU2VuZFN1Ym1pdEV2ZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxTZW5kU3VibWl0RXZlbnQ7
CisKKyAgICAvLyB2ZXJzaW9uIDIuCisgICAgV0tCdW5kbGVQYWdlRGlkRm9jdXNUZXh0RmllbGRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGb2N1c1RleHRGaWVsZDsK
KyAgICBXS0J1bmRsZVBhZ2VTaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXM7CisgICAgV0tCdW5kbGVQ
YWdlRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHM7CisKKyAgICAvLyB2ZXJzaW9uIDMuCisgICAgV0tC
dW5kbGVQYWdlRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzRm9yRnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgICBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNGb3JGcmFtZTsKK30gV0tCdW5kbGVQYWdl
Rm9ybUNsaWVudFYzOworCiAjZW5kaWYgLy8gV0tCdW5kbGVQYWdlRm9ybUNsaWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
V2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggNDdmMGYwNGNlN2Y5MDVkMmI1MjIx
NzE1NmU1Yzg0ODFhZTNjYTZhMi4uMDJkNjhiNjcxMTI1MGVmYzBmOGZjNjgyZDNlOGYzNzVjYzcz
NmM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApAQCAtNjgsNiArNjgs
NyBAQCBlbnVtIHsKICAgICBDT05URVhUX01FTlUsCiAgICAgQ09OU09MRV9NRVNTQUdFX1NFTlQs
CiAgICAgRk9STV9DT05UUk9MU19BU1NPQ0lBVEVELAorICAgIEZPUk1fQ09OVFJPTFNfQVNTT0NJ
QVRFRF9GT1JfRlJBTUUsCiAgICAgV0lMTF9TVUJNSVRfRk9STSwKIAogICAgIExBU1RfU0lHTkFM
CkBAIC0zODAsMTMgKzM4MSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIGZpcmVGb3JtU3VibWlzc2lv
bkV2ZW50KFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9TRU5EX0RPTV9FVkVOVCwgZm9ybUVs
ZW1lbnQsIGZyYW1lLCBzb3VyY2VGcmFtZSwgdmFsdWVzKTsKICAgICB9CiAKLSAgICB2b2lkIGRp
ZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVt
ZW50Pj4mIGVsZW1lbnRzKSBvdmVycmlkZQorICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKFdlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYgZWxlbWVudHMsIFdl
YkZyYW1lKiBmcmFtZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIEdSZWZQdHI8R1B0ckFycmF5
PiBmb3JtRWxlbWVudHMgPSBhZG9wdEdSZWYoZ19wdHJfYXJyYXlfc2l6ZWRfbmV3KGVsZW1lbnRz
LnNpemUoKSkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVsZW1lbnRzLnNpemUo
KTsgKytpKQogICAgICAgICAgICAgZ19wdHJfYXJyYXlfYWRkKGZvcm1FbGVtZW50cy5nZXQoKSwg
V2ViS2l0OjpraXQoZWxlbWVudHNbaV0uZ2V0KCkpKTsKIAogICAgICAgICBnX3NpZ25hbF9lbWl0
KG1fd2ViUGFnZSwgc2lnbmFsc1tGT1JNX0NPTlRST0xTX0FTU09DSUFURURdLCAwLCBmb3JtRWxl
bWVudHMuZ2V0KCkpOworICAgICAgICBnX3NpZ25hbF9lbWl0KG1fd2ViUGFnZSwgc2lnbmFsc1tG
T1JNX0NPTlRST0xTX0FTU09DSUFURURfRk9SX0ZSQU1FXSwgMCwgZm9ybUVsZW1lbnRzLmdldCgp
LCB3ZWJraXRGcmFtZUdldE9yQ3JlYXRlKGZyYW1lKSk7CiAgICAgfQogCiAgICAgYm9vbCBzaG91
bGROb3RpZnlPbkZvcm1DaGFuZ2VzKFdlYlBhZ2UqKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CkBAIC01NjUsMTYgKzU2Nyw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BhZ2VfY2xhc3Nf
aW5pdChXZWJLaXRXZWJQYWdlQ2xhc3MqIGtsYXNzKQogICAgICAqIGtlZXAgdGhlbSBhbGl2ZSBh
ZnRlciB0aGUgc2lnbmFsIGhhbmRsZXIgcmV0dXJucy4KICAgICAgKgogICAgICAqIFNpbmNlOiAy
LjE2CisgICAgICoKKyAgICAgKiBEZXByZWNhdGVkOiAyLjI2LCB1c2UgV2ViS2l0V2ViUGFnZTo6
Zm9ybS1jb250cm9scy1hc3NvY2lhdGVkLWZvci1mcmFtZSBpbnN0ZWFkLgogICAgICAqLwogICAg
IHNpZ25hbHNbRk9STV9DT05UUk9MU19BU1NPQ0lBVEVEXSA9IGdfc2lnbmFsX25ldygKICAgICAg
ICAgImZvcm0tY29udHJvbHMtYXNzb2NpYXRlZCIsCiAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KGtsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisgICAgICAgIHN0YXRpY19jYXN0
PEdTaWduYWxGbGFncz4oR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9ERVBSRUNBVEVEKSwK
ICAgICAgICAgMCwgMCwgbnVsbHB0ciwKICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURf
X0JPWEVELAogICAgICAgICBHX1RZUEVfTk9ORSwgMSwKICAgICAgICAgR19UWVBFX1BUUl9BUlJB
WSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJQYWdlOjpmb3JtLWNvbnRyb2xzLWFzc29j
aWF0ZWQtZm9yLWZyYW1lOgorICAgICAqIEB3ZWJfcGFnZTogdGhlICNXZWJLaXRXZWJQYWdlIG9u
IHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBlbGVtZW50czogKGVsZW1lbnQt
dHlwZSBXZWJLaXRET01FbGVtZW50KSAodHJhbnNmZXIgbm9uZSk6IGEgI0dQdHJBcnJheSBvZgor
ICAgICAqICAgICAjV2ViS2l0RE9NRWxlbWVudCB3aXRoIHRoZSBsaXN0IG9mIGZvcm1zIGluIHRo
ZSBwYWdlCisgICAgICogQGZyYW1lOiB0aGUgI1dlYktpdEZyYW1lCisgICAgICoKKyAgICAgKiBF
bWl0dGVkIGFmdGVyIGZvcm0gZWxlbWVudHMgKG9yIGZvcm0gYXNzb2NpYXRlZCBlbGVtZW50cykg
YXJlIGFzc29jaWF0ZWQgdG8gYSBwYXJ0aWN1bGFyIHdlYgorICAgICAqIHBhZ2UuIFRoaXMgaXMg
dXNlZnVsIHRvIGltcGxlbWVudCBmb3JtIGF1dG8gZmlsbGluZyBmb3Igd2ViIHBhZ2VzIHdoZXJl
IGZvcm0gZmllbGRzIGFyZSBhZGRlZAorICAgICAqIGR5bmFtaWNhbGx5LiBUaGlzIHNpZ25hbCBt
aWdodCBiZSBlbWl0dGVkIG11bHRpcGxlIHRpbWVzIGZvciB0aGUgc2FtZSB3ZWIgcGFnZS4KKyAg
ICAgKgorICAgICAqIE5vdGUgdGhhdCB0aGlzIHNpZ25hbCBjb3VsZCBiZSBhbHNvIGVtaXR0ZWQg
d2hlbiBmb3JtIGNvbnRyb2xzIGFyZSBtb3ZlZCBiZXR3ZWVuIGZvcm1zLiBJbgorICAgICAqIHRo
YXQgY2FzZSwgdGhlIEBlbGVtZW50cyBhcnJheSBjYXJyaWVzIHRoZSBsaXN0IG9mIHRob3NlIGVs
ZW1lbnRzIHdoaWNoIGhhdmUgbW92ZWQuCisgICAgICoKKyAgICAgKiBDbGllbnRzIHNob3VsZCB0
YWtlIGEgcmVmZXJlbmNlIHRvIHRoZSBtZW1iZXJzIG9mIHRoZSBAZWxlbWVudHMgYXJyYXkgaWYg
aXQgaXMgZGVzaXJlZCB0bworICAgICAqIGtlZXAgdGhlbSBhbGl2ZSBhZnRlciB0aGUgc2lnbmFs
IGhhbmRsZXIgcmV0dXJucy4KKyAgICAgKgorICAgICAqIFNpbmNlOiAyLjI2CisgICAgICovCisg
ICAgc2lnbmFsc1tGT1JNX0NPTlRST0xTX0FTU09DSUFURURfRk9SX0ZSQU1FXSA9IGdfc2lnbmFs
X25ldygKKyAgICAgICAgImZvcm0tY29udHJvbHMtYXNzb2NpYXRlZC1mb3ItZnJhbWUiLAorICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhrbGFzcyksCisgICAgICAgIEdfU0lHTkFMX1JVTl9MQVNU
LAorICAgICAgICAwLCAwLCBudWxscHRyLAorICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfZ2Vu
ZXJpYywKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdfVFlQRV9QVFJfQVJSQVks
CisgICAgICAgIFdFQktJVF9UWVBFX0ZSQU1FKTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdFdl
YlBhZ2U6OndpbGwtc3VibWl0LWZvcm06CiAgICAgICogQHdlYl9wYWdlOiB0aGUgI1dlYktpdFdl
YlBhZ2Ugb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIubW0KaW5kZXggODBjYWEyZDU5N2Y1MTdlM2U4NjExOTcxODMyMzdjMTE2MmRiNGRi
Zi4uNDg4MDBiYjMxNzkwNjVlNGU3MzI5MzA2OTA1NDY4MGU0MzRhZjFmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtNTI2LDcgKzUyNiw3IEBAIC0gKHZvaWQpX3NldEZv
cm1EZWxlZ2F0ZTooaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGU+KWZv
cm1EZWxlZ2F0CiAgICAgICAgICAgICByZXR1cm4gW2Zvcm1EZWxlZ2F0ZSBfd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXM6bV9j
b250cm9sbGVyXTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzKFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxl
bWVudD4+JiBlbGVtZW50cykgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3Jt
Q29udHJvbHMoV2ViS2l0OjpXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpF
bGVtZW50Pj4mIGVsZW1lbnRzLCBXZWJLaXQ6OldlYkZyYW1lKikgb3ZlcnJpZGUKICAgICAgICAg
ewogICAgICAgICAgICAgYXV0byBmb3JtRGVsZWdhdGUgPSBtX2NvbnRyb2xsZXItPl9mb3JtRGVs
ZWdhdGUuZ2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaApp
bmRleCA5MmViY2ZlMDEzY2MzNzk4OTZkYjdmMTQzMzkzNzEwY2Q1YjEyZWU5Li4wMzk1YjMyM2Y3
NjAxMjNhMDdiYTA5NmU0MmI5OGRiZTE4ZDJmNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSUluamVjdGVk
QnVuZGxlRm9ybUNsaWVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKFdlYktpdDo6V2ViUGFnZSosIFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqLCBJbnB1dEZpZWxkQWN0aW9uLCBXZWJLaXQ6OldlYkZy
YW1lKikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFN1Ym1pdEZvcm0o
V2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViS2l0OjpXZWJG
cmFtZSosIFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFdURjo6U3Ry
aW5nLCBXVEY6OlN0cmluZz4+JiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNlckRhdGEpIHsgVU5V
U0VEX1BBUkFNKHVzZXJEYXRhKTsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFN1Ym1pdEV2
ZW50KFdlYktpdDo6V2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYktpdDo6
V2ViRnJhbWUqLCBXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxXVEY6
OlN0cmluZywgV1RGOjpTdHJpbmc+PiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHMoV2ViS2l0OjpXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJD
b3JlOjpFbGVtZW50Pj4mKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzKFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxl
bWVudD4+JiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRO
b3RpZnlPbkZvcm1DaGFuZ2VzKFdlYktpdDo6V2ViUGFnZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxCZWdpbklucHV0U2Vzc2lvbihXZWJLaXQ6OldlYlBhZ2UqLCBX
ZWJDb3JlOjpFbGVtZW50KiwgV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgdXNlcklzSW50ZXJhY3Rp
bmcsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKSB7IFVOVVNFRF9QQVJBTSh1c2VyRGF0
YSk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAK
aW5kZXggMDJiNWI1M2YyZmFiOTY2YjM3NzA4MGM0M2Y0NTRjNTdhMzk0NDJlOS4uZTczYmUxNGVl
NTY0OGQxNTdiZWI0ZTllYjdmZWNlZjJhMTYyNTMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFN1Ym1pdEZvcm0oV2ViUGFnZSogcGFnZSwgSFRN
TEZvcm1FbGVtZW50CiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bh
c3MpKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50OjpkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHMoV2ViUGFnZSogcGFnZSwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3Jl
OjpFbGVtZW50Pj4mIGVsZW1lbnRzKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoV2ViUGFnZSogcGFnZSwgY29uc3QgVmVjdG9yPFJl
ZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mIGVsZW1lbnRzLCBXZWJGcmFtZSogZnJhbWUpCiB7CiAg
ICAgaWYgKCFtX2NsaWVudC5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE2OCw3ICsxNjgsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoV2ViUGFnZSogcGFnZSwgY29uc3QKICAgICBmb3Ig
KGNvbnN0IGF1dG8mIGVsZW1lbnQgOiBlbGVtZW50cykKICAgICAgICAgZWxlbWVudEhhbmRsZXMu
dW5jaGVja2VkQXBwZW5kKEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoZWxl
bWVudC5nZXQoKSkpOwogCi0gICAgbV9jbGllbnQuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKHRv
QVBJKHBhZ2UpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShlbGVtZW50SGFuZGxl
cykpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBpZiAoIW1fY2xpZW50
LmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lKSB7CisgICAgICAgIG1fY2xpZW50LmRp
ZEFzc29jaWF0ZUZvcm1Db250cm9scyh0b0FQSShwYWdlKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3Jl
YXRlKFdURk1vdmUoZWxlbWVudEhhbmRsZXMpKS5wdHIoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2NsaWVudC5kaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHNGb3JGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3Jl
YXRlKFdURk1vdmUoZWxlbWVudEhhbmRsZXMpKS5wdHIoKSksIHRvQVBJKGZyYW1lKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xp
ZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaAppbmRleCBlOWRmNTMxM2RiMDMwOWQyYmY2
MTAxOTE3NzIzZmZjYTExMzk0NDJmLi5lMzViMjFmNTg3NDhhNTQ4ZDVhMzA5MzhiZjA2MWRmMTli
OTE5ZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKQEAg
LTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBBUEkgewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGll
bnRUcmFpdHM8V0tCdW5kbGVQYWdlRm9ybUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6
dHVwbGU8V0tCdW5kbGVQYWdlRm9ybUNsaWVudFYwLCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjEs
IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMj4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMCwgV0tCdW5kbGVQYWdlRm9ybUNsaWVudFYxLCBX
S0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjIsIFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMz4gVmVyc2lv
bnM7CiB9OwogfQogCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZFBl
cmZvcm1BY3Rpb25JblRleHRGaWVsZChXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dCosIElucHV0RmllbGRBY3Rpb24sIFdlYkZyYW1lKikgb3ZlcnJpZGU7ICAgIAogICAgIHZvaWQg
d2lsbFN1Ym1pdEZvcm0oV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZy
YW1lKiwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4mLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCB3aWxsU2VuZFN1Ym1pdEV2ZW50KFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVs
ZW1lbnQqLCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHMoV2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxl
bWVudD4+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoV2Vi
UGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JiwgV2ViRnJhbWUq
KSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoV2ViUGFnZSop
IG92ZXJyaWRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA5YmFhODRkMzhhZTA4
MDExMThhMTJiODFlMjA0ZWEyZThmMGU5ZWY0Li5kNTUxMjE5NGFiMjFmZmY3NGI3OGI1MWU4MDVl
OTNmMGNlNmZjNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODQ1LDkgKzg0NSwxMSBA
QCBSZWZQdHI8SWNvbj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcwogCiAjZW5kaWYKIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+
PiYgZWxlbWVudHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiBlbGVtZW50cywgV2ViQ29yZTo6RnJh
bWUmIGZyYW1lKQogewotICAgIHJldHVybiBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50
KCkuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKCZtX3BhZ2UsIGVsZW1lbnRzKTsKKyAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CisgICAgQVNT
RVJUKHdlYkZyYW1lKTsKKyAgICByZXR1cm4gbV9wYWdlLmluamVjdGVkQnVuZGxlRm9ybUNsaWVu
dCgpLmRpZEFzc29jaWF0ZUZvcm1Db250cm9scygmbV9wYWdlLCBlbGVtZW50cywgd2ViRnJhbWUp
OwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzA1YjI1ZTlmYzkxMmE2M2I1YjQ1NzdlZjJiOGQ1ZTA3
MTdhMzU0MC4uYmVkYTFhMTdkYjBkMjY4M2NlMzQ2YjcyMDZlZDljMjFiZTkxMWVlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMjAwLDcgKzIwMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1
ZXN0UG9pbnRlclVubG9jaygpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZEFzc29jaWF0
ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYpIGZp
bmFsOworICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8V2ViQ29yZTo6RWxlbWVudD4+JiwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICBib29s
IHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSBmaW5hbDsKIAogICAgIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0ZmU4OWY3Yzc1YjI5MzBhM2I5NDkzMzkz
MGI4NWM1NTE0NzQwOTZiLi40ODVhODk2MGNkZWNkYTc5MjdmYmQyZWE5NTk1OTM0ZTUxYmJkNDY3
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTktMDUtMDcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdW0dUS10gQWRkIFdlYktpdFdlYlBhZ2U6OmRpZC1h
c3NvY2lhdGUtZm9ybS1jb250cm9scy1mb3ItZnJhbWUgYW5kIGRlcHJlY2F0ZSBvcmlnaW5hbCBk
aWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NzI3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4
dGVuc2lvblRlc3QuY3BwOgorICAgICAgICAoZm9ybUNvbnRyb2xzQXNzb2NpYXRlZEZvckZyYW1l
Q2FsbGJhY2spOgorICAgICAgICAocGFnZUNyZWF0ZWRDYWxsYmFjayk6CisgICAgICAgIChmb3Jt
Q29udHJvbHNBc3NvY2lhdGVkQ2FsbGJhY2spOiBEZWxldGVkLgorCiAyMDE5LTA1LTA3ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtX
UEVdIE1pbmlCcm93c2VyOiBsb2FkIGFib3V0OmJsYW5rIGZvciBuZXcgd2ViIHZpZXdzIGluIGF1
dG9tYXRpb24gbW9kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCmluZGV4IDI2NjQ1NTUyM2NjZTFmYjNiZGM4
ODhjYzFlYWZjY2U5ODE2YjFlNzcuLjFhNTY1ODQ0ZGFhMDJiYTYyYTlhY2VlNjk2ZWY1MDViNDE2
NDAxMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9X
ZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAgLTMxNiw5ICszMTYsOCBAQCBzdGF0aWMgdm9p
ZCBlbWl0Rm9ybUNvbnRyb2xzQXNzb2NpYXRlZChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IGNvbnN0IGNoYXIqCiAgICAgZ19hc3NlcnRfdHJ1ZShvayk7CiB9CiAKLXN0YXRpYyB2b2lkIGZv
cm1Db250cm9sc0Fzc29jaWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUHRy
QXJyYXkqIGZvcm1FbGVtZW50cywgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCitzdGF0
aWMgdm9pZCBmb3JtQ29udHJvbHNBc3NvY2lhdGVkRm9yRnJhbWVDYWxsYmFjayhXZWJLaXRXZWJQ
YWdlKiB3ZWJQYWdlLCBHUHRyQXJyYXkqIGZvcm1FbGVtZW50cywgV2ViS2l0RnJhbWUqIGZyYW1l
LCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKIHsKLSAgICBhdXRvKiBmcmFtZSA9IHdl
YmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSh3ZWJQYWdlKTsKICAgICBHU3RyaW5nKiBmb3Jt
SWRzQnVpbGRlciA9IGdfc3RyaW5nX25ldyhudWxscHRyKTsKICAgICBmb3IgKGd1aW50IGkgPSAw
OyBpIDwgZm9ybUVsZW1lbnRzLT5sZW47ICsraSkgewogICAgICAgICBnX2Fzc2VydF90cnVlKFdF
QktJVF9ET01fSVNfRUxFTUVOVChnX3B0cl9hcnJheV9pbmRleChmb3JtRWxlbWVudHMsIGkpKSk7
CkBAIC00MTMsNyArNDEyLDcgQEAgc3RhdGljIHZvaWQgcGFnZUNyZWF0ZWRDYWxsYmFjayhXZWJL
aXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgV2ViS2l0V2ViUGFnZSogd2UKICAgICBnX3NpZ25h
bF9jb25uZWN0KHdlYlBhZ2UsICJzZW5kLXJlcXVlc3QiLCBHX0NBTExCQUNLKHNlbmRSZXF1ZXN0
Q2FsbGJhY2spLCBudWxscHRyKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJjb25z
b2xlLW1lc3NhZ2Utc2VudCIsIEdfQ0FMTEJBQ0soY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2sp
LCBudWxscHRyKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJjb250ZXh0LW1lbnUi
LCBHX0NBTExCQUNLKGNvbnRleHRNZW51Q2FsbGJhY2spLCBudWxscHRyKTsKLSAgICBnX3NpZ25h
bF9jb25uZWN0KHdlYlBhZ2UsICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQiLCBHX0NBTExCQUNL
KGZvcm1Db250cm9sc0Fzc29jaWF0ZWRDYWxsYmFjayksIGV4dGVuc2lvbik7CisgICAgZ19zaWdu
YWxfY29ubmVjdCh3ZWJQYWdlLCAiZm9ybS1jb250cm9scy1hc3NvY2lhdGVkLWZvci1mcmFtZSIs
IEdfQ0FMTEJBQ0soZm9ybUNvbnRyb2xzQXNzb2NpYXRlZEZvckZyYW1lQ2FsbGJhY2spLCBleHRl
bnNpb24pOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgIndpbGwtc3VibWl0LWZvcm0i
LCBHX0NBTExCQUNLKHdpbGxTdWJtaXRGb3JtQ2FsbGJhY2spLCBleHRlbnNpb24pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369303</attachid>
            <date>2019-05-07 11:14:39 -0700</date>
            <delta_ts>2019-05-07 12:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197271-20190507131438.patch</filename>
            <type>text/plain</type>
            <size>21121</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYxNzdkMDQ4MGMwZWU1
Zjk4MmJiZWY4ZmQzOGQxNmZmMDUxYmJlZS4uZDc5MmI5N2EyNzU5MGVkODY5NzBiM2M3NDA4YTFh
NjM5MmY1YzBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA1LTA3ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtH
VEtdIEFkZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9yLWZy
YW1lIGFuZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29u
dHJvbHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKwogMjAxOS0wNS0wNyAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgPGJvZHk+IHdpdGggb3ZlcmZsb3c6aGlkZGVu
IENTUyBpcyBzY3JvbGxhYmxlIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyZGQzOGUyNDZhNWVmYzZlOTU3
YTQwZTFmODI4MjlhZmFmMDNjMGUwLi42ZDAwZTU3NmQ3ZGFiNDA2OTU3MDNjNGU3NjJhZDcxYWZh
MTU0YzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTA1LTA3ICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXVtHVEtdIEFk
ZCBXZWJLaXRXZWJQYWdlOjpkaWQtYXNzb2NpYXRlLWZvcm0tY29udHJvbHMtZm9yLWZyYW1lIGFu
ZCBkZXByZWNhdGUgb3JpZ2luYWwgZGlkLWFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcyNzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfcGFnZV9jbGFzc19pbml0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyLm1tOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIgX3NldEZvcm1EZWxlZ2F0ZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVudC5oOgorICAgICAgICAoQVBJOjpJ
bmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTktMDUt
MDcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIDxib2R5PiB3
aXRoIG92ZXJmbG93OmhpZGRlbiBzaG91bGRuJ3QgYmUga2V5Ym9hcmQgc2Nyb2xsYWJsZSBvbiBp
T1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNlNDI5Mjc3YzdlYWM2MDAyMjM3NWQ5Y2I4
OWU4ZDY1MWQ0M2RhYTAuLjc3OTFhMzY4NTMxNTE1ZTMyOTYwZTYxNmQ1ZmUyOTVlYzI4N2RhOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjk1OSw4ICs2OTU5LDEwIEBAIHZvaWQgRG9j
dW1lbnQ6OmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc1RpbWVyRmlyZWQoKQogewogICAgIGF1dG8g
dmVjdG9yID0gY29weVRvVmVjdG9yKG1fYXNzb2NpYXRlZEZvcm1Db250cm9scyk7CiAgICAgbV9h
c3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlz
LT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmRpZEFzc29jaWF0ZUZv
cm1Db250cm9scyh2ZWN0b3IpOworICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7
CisgICAgICAgIEFTU0VSVChtX2ZyYW1lKTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKHZlY3RvciwgKm1fZnJhbWUpOworICAgIH0KIH0K
IAogdm9pZCBEb2N1bWVudDo6c2V0Q2FjaGVkRE9NQ29va2llcyhjb25zdCBTdHJpbmcmIGNvb2tp
ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNmE2NjNmODI2ZjNhZTQ5
YzhjMDViZjAzZTMwNjJlZDdiYjE4NTYzMC4uZDQ1MjI4ZWVkMjBlYjk5NWY1ZGYyYTQ2MmZiNGUz
NGI3M2I5OGYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTk0LDcg
KzE5NCw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7
CiAgICAgCiAgICAgYm9vbCBpc0VtcHR5Q2hyb21lQ2xpZW50KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVj
dG9yPFJlZlB0cjxFbGVtZW50Pj4mKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZv
cm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYsIEZyYW1lJikgZmluYWwg
eyB9CiAgICAgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIC8qIGZpbGVuYW1lcyAqLykgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggY2RkZjEzY2FlODg5MzBlMjM2ZTk0MDlm
OTJlZmMyZmZkNDBiZjVkOS4uYThjZjhlZWZhZGNlY2VhMjg0ZDcxOGM3NWY4NmI4MDUwMDhhNmE3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00MjYsNyArNDI2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJbkV4dHJhU3R5bGVTaGVldCgpIGNvbnN0IHsg
cmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQo
KSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYpIHsgfTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8RWxlbWVudD4+JiwgRnJhbWUmKSB7IH07CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlm
eU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZUZvcm1DbGllbnQuaAppbmRleCAzZmMzM2I5OGQxNjZmMjA1NmQ5YmE3MGU5NmJm
ZmU1ZmRkNjhiZmEyLi4zNjJhNDRkZmEwYzM3NjQ0YmE3ZDA3M2I0Mjc0NWU1M2E3ODNjNzk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKQEAgLTM5LDYgKzM5
LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFNlbmRTdWJtaXRFdmVudENhbGxi
YWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0sKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFn
ZURpZEZvY3VzVGV4dEZpZWxkQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRs
ZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBm
cmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBh
Z2VTaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURp
ZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tB
cnJheVJlZiBlbGVtZW50SGFuZGxlcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNGb3JGcmFtZUNhbGxi
YWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tBcnJheVJlZiBlbGVtZW50SGFuZGxlcywgV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYg
c3RydWN0IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNp
b247CkBAIC05Miw0ICs5MywyNyBAQCB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xp
ZW50VjIgewogICAgIFdLQnVuZGxlUGFnZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzOwogfSBXS0J1
bmRsZVBhZ2VGb3JtQ2xpZW50VjI7CiAKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUZvcm1D
bGllbnRWMyB7CisgICAgV0tCdW5kbGVQYWdlRm9ybUNsaWVudEJhc2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAg
IFdLQnVuZGxlUGFnZVRleHRGaWVsZERpZEJlZ2luRWRpdGluZ0NhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nOworICAgIFdLQnVuZGxlUGFnZVRl
eHRGaWVsZERpZEVuZEVkaXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4
dEZpZWxkRGlkRW5kRWRpdGluZzsKKyAgICBXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hhbmdlSW5UZXh0
RmllbGRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHRleHREaWRDaGFuZ2VJblRleHRG
aWVsZDsKKyAgICBXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgIHRleHREaWRDaGFuZ2VJblRleHRBcmVhOworICAgIFdLQnVu
ZGxlUGFnZVNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkOworICAgIFdLQnVuZGxlUGFnZVdp
bGxTdWJtaXRGb3JtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ls
bFN1Ym1pdEZvcm07CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlV2lsbFNl
bmRTdWJtaXRFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsU2Vu
ZFN1Ym1pdEV2ZW50OworCisgICAgLy8gdmVyc2lvbiAyLgorICAgIFdLQnVuZGxlUGFnZURpZEZv
Y3VzVGV4dEZpZWxkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRm9j
dXNUZXh0RmllbGQ7CisgICAgV0tCdW5kbGVQYWdlU2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlc0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOwor
ICAgIFdLQnVuZGxlUGFnZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzOworCisgICAgLy8gdmVyc2lv
biAzLgorICAgIFdLQnVuZGxlUGFnZURpZEFzc29jaWF0ZUZvcm1Db250cm9sc0ZvckZyYW1lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzRm9yRnJhbWU7Cit9
IFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMzsKKwogI2VuZGlmIC8vIFdLQnVuZGxlUGFnZUZvcm1D
bGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDQ3ZjBmMDRj
ZTdmOTA1ZDJiNTIyMTcxNTZlNWM4NDgxYWUzY2E2YTIuLjAyZDY4YjY3MTEyNTBlZmMwZjhmYzY4
MmQzZThmMzc1Y2M3MzZjNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAK
QEAgLTY4LDYgKzY4LDcgQEAgZW51bSB7CiAgICAgQ09OVEVYVF9NRU5VLAogICAgIENPTlNPTEVf
TUVTU0FHRV9TRU5ULAogICAgIEZPUk1fQ09OVFJPTFNfQVNTT0NJQVRFRCwKKyAgICBGT1JNX0NP
TlRST0xTX0FTU09DSUFURURfRk9SX0ZSQU1FLAogICAgIFdJTExfU1VCTUlUX0ZPUk0sCiAKICAg
ICBMQVNUX1NJR05BTApAQCAtMzgwLDEzICszODEsMTQgQEAgcHVibGljOgogICAgICAgICBmaXJl
Rm9ybVN1Ym1pc3Npb25FdmVudChXRUJLSVRfRk9STV9TVUJNSVNTSU9OX1dJTExfU0VORF9ET01f
RVZFTlQsIGZvcm1FbGVtZW50LCBmcmFtZSwgc291cmNlRnJhbWUsIHZhbHVlcyk7CiAgICAgfQog
Ci0gICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoV2ViUGFnZSosIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8RWxlbWVudD4+JiBlbGVtZW50cykgb3ZlcnJpZGUKKyAgICB2b2lkIGRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4m
IGVsZW1lbnRzLCBXZWJGcmFtZSogZnJhbWUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBHUmVm
UHRyPEdQdHJBcnJheT4gZm9ybUVsZW1lbnRzID0gYWRvcHRHUmVmKGdfcHRyX2FycmF5X3NpemVk
X25ldyhlbGVtZW50cy5zaXplKCkpKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBl
bGVtZW50cy5zaXplKCk7ICsraSkKICAgICAgICAgICAgIGdfcHRyX2FycmF5X2FkZChmb3JtRWxl
bWVudHMuZ2V0KCksIFdlYktpdDo6a2l0KGVsZW1lbnRzW2ldLmdldCgpKSk7CiAKICAgICAgICAg
Z19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25hbHNbRk9STV9DT05UUk9MU19BU1NPQ0lBVEVE
XSwgMCwgZm9ybUVsZW1lbnRzLmdldCgpKTsKKyAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBh
Z2UsIHNpZ25hbHNbRk9STV9DT05UUk9MU19BU1NPQ0lBVEVEX0ZPUl9GUkFNRV0sIDAsIGZvcm1F
bGVtZW50cy5nZXQoKSwgd2Via2l0RnJhbWVHZXRPckNyZWF0ZShmcmFtZSkpOwogICAgIH0KIAog
ICAgIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyhXZWJQYWdlKikgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQpAQCAtNTY1LDE2ICs1NjcsNDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9wYWdlX2NsYXNzX2luaXQoV2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgKiBrZWVw
IHRoZW0gYWxpdmUgYWZ0ZXIgdGhlIHNpZ25hbCBoYW5kbGVyIHJldHVybnMuCiAgICAgICoKICAg
ICAgKiBTaW5jZTogMi4xNgorICAgICAqCisgICAgICogRGVwcmVjYXRlZDogMi4yNiwgdXNlIFdl
YktpdFdlYlBhZ2U6OmZvcm0tY29udHJvbHMtYXNzb2NpYXRlZC1mb3ItZnJhbWUgaW5zdGVhZC4K
ICAgICAgKi8KICAgICBzaWduYWxzW0ZPUk1fQ09OVFJPTFNfQVNTT0NJQVRFRF0gPSBnX3NpZ25h
bF9uZXcoCiAgICAgICAgICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQiLAogICAgICAgICBHX1RZ
UEVfRlJPTV9DTEFTUyhrbGFzcyksCi0gICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAorICAgICAg
ICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxhZ3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
REVQUkVDQVRFRCksCiAgICAgICAgIDAsIDAsIG51bGxwdHIsCiAgICAgICAgIGdfY2Nsb3N1cmVf
bWFyc2hhbF9WT0lEX19CT1hFRCwKICAgICAgICAgR19UWVBFX05PTkUsIDEsCiAgICAgICAgIEdf
VFlQRV9QVFJfQVJSQVkpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViUGFnZTo6Zm9ybS1j
b250cm9scy1hc3NvY2lhdGVkLWZvci1mcmFtZToKKyAgICAgKiBAd2ViX3BhZ2U6IHRoZSAjV2Vi
S2l0V2ViUGFnZSBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAZWxlbWVu
dHM6IChlbGVtZW50LXR5cGUgV2ViS2l0RE9NRWxlbWVudCkgKHRyYW5zZmVyIG5vbmUpOiBhICNH
UHRyQXJyYXkgb2YKKyAgICAgKiAgICAgI1dlYktpdERPTUVsZW1lbnQgd2l0aCB0aGUgbGlzdCBv
ZiBmb3JtcyBpbiB0aGUgcGFnZQorICAgICAqIEBmcmFtZTogdGhlICNXZWJLaXRGcmFtZQorICAg
ICAqCisgICAgICogRW1pdHRlZCBhZnRlciBmb3JtIGVsZW1lbnRzIChvciBmb3JtIGFzc29jaWF0
ZWQgZWxlbWVudHMpIGFyZSBhc3NvY2lhdGVkIHRvIGEgcGFydGljdWxhciB3ZWIKKyAgICAgKiBw
YWdlLiBUaGlzIGlzIHVzZWZ1bCB0byBpbXBsZW1lbnQgZm9ybSBhdXRvIGZpbGxpbmcgZm9yIHdl
YiBwYWdlcyB3aGVyZSBmb3JtIGZpZWxkcyBhcmUgYWRkZWQKKyAgICAgKiBkeW5hbWljYWxseS4g
VGhpcyBzaWduYWwgbWlnaHQgYmUgZW1pdHRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUg
d2ViIHBhZ2UuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBzaWduYWwgY291bGQgYmUg
YWxzbyBlbWl0dGVkIHdoZW4gZm9ybSBjb250cm9scyBhcmUgbW92ZWQgYmV0d2VlbiBmb3Jtcy4g
SW4KKyAgICAgKiB0aGF0IGNhc2UsIHRoZSBAZWxlbWVudHMgYXJyYXkgY2FycmllcyB0aGUgbGlz
dCBvZiB0aG9zZSBlbGVtZW50cyB3aGljaCBoYXZlIG1vdmVkLgorICAgICAqCisgICAgICogQ2xp
ZW50cyBzaG91bGQgdGFrZSBhIHJlZmVyZW5jZSB0byB0aGUgbWVtYmVycyBvZiB0aGUgQGVsZW1l
bnRzIGFycmF5IGlmIGl0IGlzIGRlc2lyZWQgdG8KKyAgICAgKiBrZWVwIHRoZW0gYWxpdmUgYWZ0
ZXIgdGhlIHNpZ25hbCBoYW5kbGVyIHJldHVybnMuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi4y
NgorICAgICAqLworICAgIHNpZ25hbHNbRk9STV9DT05UUk9MU19BU1NPQ0lBVEVEX0ZPUl9GUkFN
RV0gPSBnX3NpZ25hbF9uZXcoCisgICAgICAgICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtZm9y
LWZyYW1lIiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAorICAgICAgICBHX1NJ
R05BTF9SVU5fTEFTVCwKKyAgICAgICAgMCwgMCwgbnVsbHB0ciwKKyAgICAgICAgZ19jY2xvc3Vy
ZV9tYXJzaGFsX2dlbmVyaWMsCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHX1RZ
UEVfUFRSX0FSUkFZLAorICAgICAgICBXRUJLSVRfVFlQRV9GUkFNRSk7CisKICAgICAvKioKICAg
ICAgKiBXZWJLaXRXZWJQYWdlOjp3aWxsLXN1Ym1pdC1mb3JtOgogICAgICAqIEB3ZWJfcGFnZTog
dGhlICNXZWJLaXRXZWJQYWdlIG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IDgwY2FhMmQ1OTdmNTE3ZTNlODYxMTk3MTgz
MjM3YzExNjJkYjRkYmYuLjQ4ODAwYmIzMTc5MDY1ZTRlNzMyOTMwNjkwNTQ2ODBlNDM0YWYxZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTUyNiw3ICs1MjYsNyBAQCAt
ICh2b2lkKV9zZXRGb3JtRGVsZWdhdGU6KGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdh
dGVQcml2YXRlPilmb3JtRGVsZWdhdAogICAgICAgICAgICAgcmV0dXJuIFtmb3JtRGVsZWdhdGUg
X3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJTaG91bGROb3RpZnlPbkZv
cm1DaGFuZ2VzOm1fY29udHJvbGxlcl07CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGRpZEFz
c29jaWF0ZUZvcm1Db250cm9scyhXZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRy
PFdlYkNvcmU6OkVsZW1lbnQ+PiYgZWxlbWVudHMpIG92ZXJyaWRlCisgICAgICAgIHZvaWQgZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8V2ViQ29yZTo6RWxlbWVudD4+JiBlbGVtZW50cywgV2ViS2l0OjpXZWJGcmFtZSopIG92ZXJy
aWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGF1dG8gZm9ybURlbGVnYXRlID0gbV9jb250cm9s
bGVyLT5fZm9ybURlbGVnYXRlLmdldCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJSW5qZWN0ZWRCdW5kbGVG
b3JtQ2xpZW50LmgKaW5kZXggOTJlYmNmZTAxM2NjMzc5ODk2ZGI3ZjE0MzM5MzcxMGNkNWIxMmVl
OS4uMDM5NWIzMjNmNzYwMTIzYTA3YmEwOTZlNDJiOThkYmUxOGQyZjQ2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxl
Rm9ybUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChXZWJLaXQ6
OldlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgSW5wdXRGaWVsZEFjdGlvbiwg
V2ViS2l0OjpXZWJGcmFtZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTdWJtaXRGb3JtKFdlYktpdDo6V2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCos
IFdlYktpdDo6V2ViRnJhbWUqLCBXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgVmVjdG9yPHN0ZDo6
cGFpcjxXVEY6OlN0cmluZywgV1RGOjpTdHJpbmc+PiYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVz
ZXJEYXRhKSB7IFVOVVNFRF9QQVJBTSh1c2VyRGF0YSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNlbmRTdWJtaXRFdmVudChXZWJLaXQ6OldlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1l
bnQqLCBXZWJLaXQ6OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFZlY3Rvcjxz
dGQ6OnBhaXI8V1RGOjpTdHJpbmcsIFdURjo6U3RyaW5nPj4mKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdlYktpdDo6V2ViUGFnZSosIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFz
c29jaWF0ZUZvcm1Db250cm9scyhXZWJLaXQ6OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRy
PFdlYkNvcmU6OkVsZW1lbnQ+PiYsIFdlYktpdDo6V2ViRnJhbWUqKSB7IH0KICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyhXZWJLaXQ6OldlYlBhZ2UqKSB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5JbnB1dFNlc3Npb24oV2ViS2l0
OjpXZWJQYWdlKiwgV2ViQ29yZTo6RWxlbWVudCosIFdlYktpdDo6V2ViRnJhbWUqLCBib29sIHVz
ZXJJc0ludGVyYWN0aW5nLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgeyBVTlVTRURf
UEFSQU0odXNlckRhdGEpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZv
cm1DbGllbnQuY3BwCmluZGV4IDAyYjViNTNmMmZhYjk2NmIzNzcwODBjNDNmNDU0YzU3YTM5NDQy
ZTkuLjEwZjhmZWY5Mjc5ZWM1NWEzMmY2NTRkZDc5MzQ0ODhhMDYwNzUxODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VGb3JtQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKQEAgLTE1Nyw5ICsxNTcsOSBA
QCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKFdlYlBh
Z2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVudAogICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBs
KHVzZXJEYXRhVG9QYXNzKSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVu
dDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JiBlbGVtZW50cykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JiBlbGVtZW50cywgV2ViRnJhbWUq
IGZyYW1lKQogewotICAgIGlmICghbV9jbGllbnQuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKQor
ICAgIGlmICghbV9jbGllbnQuZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzICYmICFtX2NsaWVudC5k
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHNGb3JGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
VmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGVsZW1lbnRIYW5kbGVzOwpAQCAtMTY4LDcgKzE2
OCwxMiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OmRpZEFzc29jaWF0ZUZv
cm1Db250cm9scyhXZWJQYWdlKiBwYWdlLCBjb25zdAogICAgIGZvciAoY29uc3QgYXV0byYgZWxl
bWVudCA6IGVsZW1lbnRzKQogICAgICAgICBlbGVtZW50SGFuZGxlcy51bmNoZWNrZWRBcHBlbmQo
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShlbGVtZW50LmdldCgpKSk7CiAK
LSAgICBtX2NsaWVudC5kaWRBc3NvY2lhdGVGb3JtQ29udHJvbHModG9BUEkocGFnZSksIHRvQVBJ
KEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3ZlKGVsZW1lbnRIYW5kbGVzKSkucHRyKCkpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIGlmICghbV9jbGllbnQuZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzRm9yRnJhbWUpIHsKKyAgICAgICAgbV9jbGllbnQuZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzKHRvQVBJKHBhZ2UpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShlbGVt
ZW50SGFuZGxlcykpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fY2xpZW50LmRpZEFzc29jaWF0ZUZvcm1Db250cm9sc0Zv
ckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShlbGVt
ZW50SGFuZGxlcykpLnB0cigpKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnNob3VsZE5vdGlm
eU9uRm9ybUNoYW5nZXMoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oCmluZGV4IGU5ZGY1MzEzZGIwMzA5ZDJiZjYxMDE5MTc3MjNmZmNhMTEz
OTQ0MmYuLmUzNWIyMWY1ODc0OGE1NDhkNWEzMDkzOGJmMDYxZGYxOWI5MTllN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaApAQCAtMzMsNyArMzMsNyBAQAog
bmFtZXNwYWNlIEFQSSB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBh
Z2VGb3JtQ2xpZW50VjAsIFdLQnVuZGxlUGFnZUZvcm1DbGllbnRWMSwgV0tCdW5kbGVQYWdlRm9y
bUNsaWVudFYyPiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdl
Rm9ybUNsaWVudFYwLCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjEsIFdLQnVuZGxlUGFnZUZvcm1D
bGllbnRWMiwgV0tCdW5kbGVQYWdlRm9ybUNsaWVudFYzPiBWZXJzaW9uczsKIH07CiB9CiAKQEAg
LTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4
dEZpZWxkKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgSW5wdXRGaWVsZEFj
dGlvbiwgV2ViRnJhbWUqKSBvdmVycmlkZTsgICAgCiAgICAgdm9pZCB3aWxsU3VibWl0Rm9ybShX
ZWJQYWdlKiwgV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViRnJhbWUqLCBXZWJGcmFtZSog
c291cmNlRnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYsIFJl
ZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxTZW5k
U3VibWl0RXZlbnQoV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCosIFdlYkZyYW1l
KiwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywg
U3RyaW5nPj4mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhX
ZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29uc3QgVmVj
dG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mLCBXZWJGcmFtZSopIG92ZXJyaWRlOwogICAg
IGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyhXZWJQYWdlKikgb3ZlcnJpZGU7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDliYWE4NGQzOGFlMDgwMTExOGExMmI4MWUyMDRl
YTJlOGYwZTllZjQuLmQ1NTEyMTk0YWIyMWZmZjc0Yjc4YjUxZTgwNWU5M2YwY2U2ZmM3MjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04NDUsOSArODQ1LDExIEBAIFJlZlB0cjxJY29uPiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzCiAKICNlbmRpZgogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JiBlbGVtZW50cykKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9y
PFJlZlB0cjxFbGVtZW50Pj4mIGVsZW1lbnRzLCBXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiB7Ci0g
ICAgcmV0dXJuIG1fcGFnZS5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS5kaWRBc3NvY2lhdGVG
b3JtQ29udHJvbHMoJm1fcGFnZSwgZWxlbWVudHMpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9
IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOwor
ICAgIHJldHVybiBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkuZGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzKCZtX3BhZ2UsIGVsZW1lbnRzLCB3ZWJGcmFtZSk7CiB9CiAKIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAppbmRleCA3MDViMjVlOWZjOTEyYTYzYjViNDU3N2VmMmI4ZDVlMDcxN2EzNTQwLi5iZWRhMWEx
N2RiMGQyNjgzY2UzNDZiNzIwNmVkOWMyMWJlOTExZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC0yMDAsNyArMjAwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2Nr
KCkgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4+JikgZmluYWw7CisgICAgdm9pZCBk
aWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVt
ZW50Pj4mLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25G
b3JtQ2hhbmdlcygpIGZpbmFsOwogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDdlZDU5MGE1NGZkMzEwNGFjMGJkNmMyOGY4MzMyZjYxZTgzMmYyMTIu
LjdiMTEwZDIxNzgzYTRiMjc5ZDEyMmIyNDUyMDFiNzI2YmNkYjA0OGUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
OS0wNS0wNyAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW1dQRV1bR1RLXSBBZGQgV2ViS2l0V2ViUGFnZTo6ZGlkLWFzc29jaWF0ZS1mb3JtLWNv
bnRyb2xzLWZvci1mcmFtZSBhbmQgZGVwcmVjYXRlIG9yaWdpbmFsIGRpZC1hc3NvY2lhdGUtZm9y
bS1jb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MjcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcDoK
KyAgICAgICAgKGZvcm1Db250cm9sc0Fzc29jaWF0ZWRGb3JGcmFtZUNhbGxiYWNrKToKKyAgICAg
ICAgKHBhZ2VDcmVhdGVkQ2FsbGJhY2spOgorICAgICAgICAoZm9ybUNvbnRyb2xzQXNzb2NpYXRl
ZENhbGxiYWNrKTogRGVsZXRlZC4KKwogMjAxOS0wNS0wNyAgQWRyaWFuIFBlcmV6IGRlIENhc3Ry
byAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFrXSB3ZWJraXQtYnVpbGQg
ZmFpbHMgZHVlIHRvIG1pc3NpbmcgR1RLMiBpbiBidWlsZCBlbnZpcm9ubWVudApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRl
c3QuY3BwCmluZGV4IDI2NjQ1NTUyM2NjZTFmYjNiZGM4ODhjYzFlYWZjY2U5ODE2YjFlNzcuLjFh
NTY1ODQ0ZGFhMDJiYTYyYTlhY2VlNjk2ZWY1MDViNDE2NDAxMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5j
cHAKQEAgLTMxNiw5ICszMTYsOCBAQCBzdGF0aWMgdm9pZCBlbWl0Rm9ybUNvbnRyb2xzQXNzb2Np
YXRlZChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqCiAgICAgZ19hc3Nl
cnRfdHJ1ZShvayk7CiB9CiAKLXN0YXRpYyB2b2lkIGZvcm1Db250cm9sc0Fzc29jaWF0ZWRDYWxs
YmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUHRyQXJyYXkqIGZvcm1FbGVtZW50cywgV2Vi
S2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCitzdGF0aWMgdm9pZCBmb3JtQ29udHJvbHNBc3Nv
Y2lhdGVkRm9yRnJhbWVDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUHRyQXJyYXkq
IGZvcm1FbGVtZW50cywgV2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4
dGVuc2lvbikKIHsKLSAgICBhdXRvKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9m
cmFtZSh3ZWJQYWdlKTsKICAgICBHU3RyaW5nKiBmb3JtSWRzQnVpbGRlciA9IGdfc3RyaW5nX25l
dyhudWxscHRyKTsKICAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwgZm9ybUVsZW1lbnRzLT5sZW47
ICsraSkgewogICAgICAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9ET01fSVNfRUxFTUVOVChnX3B0
cl9hcnJheV9pbmRleChmb3JtRWxlbWVudHMsIGkpKSk7CkBAIC00MTMsNyArNDEyLDcgQEAgc3Rh
dGljIHZvaWQgcGFnZUNyZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lv
biwgV2ViS2l0V2ViUGFnZSogd2UKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJzZW5k
LXJlcXVlc3QiLCBHX0NBTExCQUNLKHNlbmRSZXF1ZXN0Q2FsbGJhY2spLCBudWxscHRyKTsKICAg
ICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJjb25zb2xlLW1lc3NhZ2Utc2VudCIsIEdfQ0FM
TEJBQ0soY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2spLCBudWxscHRyKTsKICAgICBnX3NpZ25h
bF9jb25uZWN0KHdlYlBhZ2UsICJjb250ZXh0LW1lbnUiLCBHX0NBTExCQUNLKGNvbnRleHRNZW51
Q2FsbGJhY2spLCBudWxscHRyKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJmb3Jt
LWNvbnRyb2xzLWFzc29jaWF0ZWQiLCBHX0NBTExCQUNLKGZvcm1Db250cm9sc0Fzc29jaWF0ZWRD
YWxsYmFjayksIGV4dGVuc2lvbik7CisgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiZm9y
bS1jb250cm9scy1hc3NvY2lhdGVkLWZvci1mcmFtZSIsIEdfQ0FMTEJBQ0soZm9ybUNvbnRyb2xz
QXNzb2NpYXRlZEZvckZyYW1lQ2FsbGJhY2spLCBleHRlbnNpb24pOwogICAgIGdfc2lnbmFsX2Nv
bm5lY3Qod2ViUGFnZSwgIndpbGwtc3VibWl0LWZvcm0iLCBHX0NBTExCQUNLKHdpbGxTdWJtaXRG
b3JtQ2FsbGJhY2spLCBleHRlbnNpb24pOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>