<?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>231895</bug_id>
          
          <creation_ts>2021-10-18 08:40:36 -0700</creation_ts>
          <short_desc>AX: Unify speech synthesizer platform usage for Mac/iOS</short_desc>
          <delta_ts>2021-12-09 14:56:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=234105</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>ayumi_kojima</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1805585</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-18 08:40:36 -0700</bug_when>
    <thetext>Unify the platform speech synthesizer usage for macOS. Now that AVSpeechSynthesizer has been fully supported for a number of years, we can switch over</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805586</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-18 08:40:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/84372479&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805587</commentid>
    <comment_count>2</comment_count>
      <attachid>441606</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-18 08:42:19 -0700</bug_when>
    <thetext>Created attachment 441606
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805591</commentid>
    <comment_count>3</comment_count>
      <attachid>441607</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-18 08:49:40 -0700</bug_when>
    <thetext>Created attachment 441607
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805604</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-18 09:09:15 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Created attachment 441607 [details]
&gt; patch

--- a/Source/WebCore/SourcesCocoa.txt
+++ a/Source/WebCore/SourcesCocoa.txt
@@ -255,6 +255,7 @@ platform/cocoa/ParentalControlsContentFilter.mm
 platform/cocoa/PasteboardCocoa.mm
 platform/cocoa/PasteboardCustomDataCocoa.mm
 platform/cocoa/PlatformPasteboardCocoa.mm
+platform/cocoa/PlatformSpeechSynthesizerIOS.mm @no-unify

Shouldn&apos;t this file be renamed to *Cocoa.mm now that is for both Mac and iOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806624</commentid>
    <comment_count>5</comment_count>
      <attachid>441881</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-20 08:22:32 -0700</bug_when>
    <thetext>Created attachment 441881
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806990</commentid>
    <comment_count>6</comment_count>
      <attachid>441975</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-20 19:43:29 -0700</bug_when>
    <thetext>Created attachment 441975
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807185</commentid>
    <comment_count>7</comment_count>
      <attachid>442037</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-21 09:06:15 -0700</bug_when>
    <thetext>Created attachment 442037
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807187</commentid>
    <comment_count>8</comment_count>
      <attachid>442038</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-21 09:07:02 -0700</bug_when>
    <thetext>Created attachment 442038
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808046</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-23 00:46:40 -0700</bug_when>
    <thetext>Committed r284742 (243451@main): &lt;https://commits.webkit.org/243451@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442038.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808594</commentid>
    <comment_count>10</comment_count>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-10-25 14:32:14 -0700</bug_when>
    <thetext>Reverted r284742 for reason:

Reverting because this commit may have casued a regression on imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-events.html

Committed r284822 (243514@main): &lt;https://commits.webkit.org/243514@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818046</commentid>
    <comment_count>11</comment_count>
      <attachid>445221</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-11-27 13:37:19 -0800</bug_when>
    <thetext>Created attachment 445221
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818047</commentid>
    <comment_count>12</comment_count>
      <attachid>445222</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-11-27 13:40:01 -0800</bug_when>
    <thetext>Created attachment 445222
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818054</commentid>
    <comment_count>13</comment_count>
      <attachid>445226</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-11-27 16:32:05 -0800</bug_when>
    <thetext>Created attachment 445226
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818055</commentid>
    <comment_count>14</comment_count>
      <attachid>445227</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-11-27 16:33:56 -0800</bug_when>
    <thetext>Created attachment 445227
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818064</commentid>
    <comment_count>15</comment_count>
      <attachid>445233</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-11-27 22:43:00 -0800</bug_when>
    <thetext>Created attachment 445233
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818417</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-29 12:49:06 -0800</bug_when>
    <thetext>Committed r286259 (244622@main): &lt;https://commits.webkit.org/244622@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445233.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441606</attachid>
            <date>2021-10-18 08:42:19 -0700</date>
            <delta_ts>2021-10-18 08:49:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>33871</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cN
CmluZGV4IGM1M2E5YjI5YWYzYS4uMTQwMmFkMzc5NWVkIDEwMDY0NA0KLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEzIEBA
DQorMjAyMS0xMC0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0K
KyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3Ig
TWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhh
dmUuaDoNCisNCiAyMDIxLTEwLTE2ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5j
b20+DQogDQogICAgICAgICBBbGxvdyBXQVNNIHRvIHVzZSB1cCB0byA0R0INCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oDQppbmRleCBmNmQ1MTBjZDgyMmMuLjYzZmI0MTA1ZGNkZSAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oDQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaA0KQEAgLTc1OSwxOCArNzU5LDEyIEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lm
IChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMzAwDQorI2lmICgoUExBVEZPUk0oSU9TKSB8fCBQ
TEFURk9STShNQUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDE0MDMwMCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMzAwMDApDQogI2lmICFkZWZpbmVkKEhBVkVfQVZTUEVFQ0hTWU5USEVTSVNf
U1lTVEVNVk9JQ0UpDQogI2RlZmluZSBIQVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNF
IDENCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMA0KLSNpZiAhZGVmaW5lZChIQVZFX1NQRUVD
SFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotI2RlZmluZSBIQVZFX1NQRUVDSFNZTlRIRVNJU19N
T05URVJFWV9TUEkgMQ0KLSNlbmRpZg0KLSNlbmRpZg0KLQ0KICNpZiBDT01QSUxFUihHQ0NfQ09N
UEFUSUJMRSkgJiYgZGVmaW5lZChfX2hhc19hdHRyaWJ1dGUpDQogI2lmIF9faGFzX2F0dHJpYnV0
ZShvYmpjX2RpcmVjdCkgJiYgKCFQTEFURk9STShNQUMpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTIwMDAwKQ0KICNpZiAhZGVmaW5lZChIQVZFX05TX0RJUkVDVF9TVVBQ
T1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZw0KaW5kZXggMjdhN2EyOGE5ZjZmLi44YTIzOGRiNTFhYTcgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZw0KQEAgLTEsMyArMSw0MCBAQA0KKzIwMjEtMTAtMTggIENocmlzIEZsZWl6YWNoICA8Y2Zs
ZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6
ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
NDM3MjQ3OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAg
ICAgICAgQVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBzdXBwb3J0ZWQgb24gbWFj
T1MgZm9yIGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0byB1bmlmeSBwbGF0Zm9y
bSB1c2FnZS4NCisNCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoNCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2Nv
YS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW06IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbS4NCisg
ICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hSYXRlKToNCisgICAgICAg
IChnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKToNCisgICAgICAgICgtW1dl
YlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgaW5pdFdpdGhTcGVlY2hTeW50aGVzaXplcjpdKToNCisg
ICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgbWFwU3BlZWNoUmF0ZVRvUGxhdGZv
cm1SYXRlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVha1V0
dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgcGF1c2Vd
KToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgcmVzdW1lXSk6DQorICAg
ICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIGNhbmNlbF0pOg0KKyAgICAgICAgKC1b
V2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXplcjpkaWRTdGFydFNwZWVj
aFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgc3Bl
ZWNoU3ludGhlc2l6ZXI6ZGlkRmluaXNoU3BlZWNoVXR0ZXJhbmNlOl0pOg0KKyAgICAgICAgKC1b
V2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXplcjpkaWRQYXVzZVNwZWVj
aFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgc3Bl
ZWNoU3ludGhlc2l6ZXI6ZGlkQ29udGludWVTcGVlY2hVdHRlcmFuY2U6XSk6DQorICAgICAgICAo
LVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIHNwZWVjaFN5bnRoZXNpemVyOmRpZENhbmNlbFNw
ZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIg
c3BlZWNoU3ludGhlc2l6ZXI6d2lsbFNwZWFrUmFuZ2VPZlNwZWVjaFN0cmluZzp1dHRlcmFuY2U6
XSk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplcik6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOg0KKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVWb2ljZUxpc3QpOg0KKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnBhdXNlKToNCisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUpOg0KKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnNwZWFrKToNCisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5jZWwpOg0KKyAgICAgICAg
KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUpOg0KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbTogUmVtb3Zl
ZC4NCisNCiAyMDIxLTEwLTE2ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4NCiANCiAg
ICAgICAgIFtMRkNdW0lGQ10gQWRqdXN0IHRoZSBsb2dpY2FsIHJpZ2h0IHNpZGUgb2YgdGhlIGxp
bmUgd2l0aCBsaW5lIHNwYW5uaW5nIGlubGluZSBib3hlcw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQppbmRl
eCBiMTNjOWUwZGYwYzEuLjExYzk4NTZjYzMyNSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cNCkBAIC0x
LDMgKzEsMTcgQEANCisyMDIxLTEwLTE4ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBs
ZS5jb20+DQorDQorICAgICAgICBBWDogVW5pZnkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3Jt
IHVzYWdlIGZvciBNYWMvaU9TDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxODk1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQor
DQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogUEFM
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6DQorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oOg0KKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsubW06DQorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmg6DQor
ICAgICAgICAqIHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oOiBSZW1vdmVkLg0KKw0K
IDIwMjEtMTAtMTUgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPg0KIA0K
ICAgICAgICAgUmVhbGl6ZSBNYWMgQ01ha2UgYnVpbGQgb2YgV2ViQ29yZSBhbmQgV2ViS2l0DQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQpp
bmRleCBjNmRhNjAwNWQwYjguLjBjYTMzZWRkNmViNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQpAQCAtMTY5LDcgKzE2OSw2IEBA
DQogCQlBMTA4MjZGOTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgyNkY3MUY1NzYyOTIwMDQ3NzJB
QyAvKiBXZWJQYW5lbC5oICovOyB9Ow0KIAkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdl
YlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovOyB9Ow0KIAkJQTEwODI2
RkUxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBO
U0dyYXBoaWNzU1BJLmggKi87IH07DQotCQlBMTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3Bl
ZWNoU3ludGhlc2lzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmgg
Ki87IH07DQogCQlBMTE3NUI0QjFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdF
MDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07DQogCQlBMTE3NUI0RTFGNkIzMzczMDBDNEI5
RjAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTE3NUI0QzFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggKi87IH07DQog
CQlBMTE3NUI0RjFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5tbSAqLzsgfTsNCkBAIC0zOTYsNyArMzk1LDYgQEANCiAJCUExMDgyNkY3
MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYW5lbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFD
IC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGFuZWwubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTA4MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNH
cmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0dyYXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07DQotCQlBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3lu
dGhlc2lzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFN5bnRoZXNpc1NQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2Vs
bFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsNCiAJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3
NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUG9wdXBNZW51Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTY0Myw3ICs2
NDEsNiBAQA0KIAkJCQkwQzc3ODU4NDFGNDUxMzBGMDBGNEVCQjYgLyogTlNXaW5kb3dTUEkuaCAq
LywNCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAwRjRFQkI2IC8qIFBJUFNQSS5oICovLA0KIAkJCQkw
Qzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVpY2tMb29rTWFjU1BJLmggKi8sDQotCQkJCUEx
MTc1QjQ4MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCAqLywNCiAJCQkJ
NzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCAqLywNCiAJCQkJ
MEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRlbGVwaG9ueVV0aWxpdGllc1NQSS5oICovLA0K
IAkJCSk7DQpAQCAtMTAxMiw3ICsxMDA5LDYgQEANCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5
NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4
RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQzIyNTgy
MUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oIGluIEhlYWRlcnMgKi8sDQotCQkJCUExMTc1QjQ5
MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCBpbiBIZWFkZXJzICovLA0K
IAkJCQkwQzVBRjkyMTFGNDNBNEM3MDAyRUFDMDIgLyogU1FMaXRlM1NQSS5oIGluIEhlYWRlcnMg
Ki8sDQogCQkJCTcxQjExNDIwMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmgg
aW4gSGVhZGVycyAqLywNCiAJCQkJMzEzMDhCMTQyMEEyMTcwNTAwM0ZCOTI5IC8qIFN5c3RlbVBy
ZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KaW5kZXggOWRiOWFmOGY3ZWMxLi5hNzM3
MDk3N2JkYzggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaA0KQEAgLTc2LDYgKzc2LDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZP
Ul9IRUFERVIoUEFMLCBBVlN0cmVhbVNlc3Npb24pDQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
DQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkF1ZGlvU2Vzc2lvbikNCiBTT0ZU
X0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVz
dCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZP
Ul9IRUFERVIoUEFMLCBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlKQ0KIFNPRlRfTElOS19DTEFTU19G
T1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXplcikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJhbmNlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tDQppbmRleCBkMjFkNDljZDc3
MDIuLmJkNmViYmNiOTkxMyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0NCkBAIC0xMDIsNiArMTAyLDkgQEAgU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3Ry
ZWFtU2Vzc2lvbiwgUEFMX0UNCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktf
Q0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nl
c3Npb24sIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCwgUEFM
X0VYUE9SVCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoU3lu
dGhlc2lzVm9pY2UsIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2l6ZXIsIFBBTF9FWFBP
UlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5k
YXRpb24sIEFWU3BlZWNoVXR0ZXJhbmNlLCBQQUxfRVhQT1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmgNCmluZGV4IGZl
Y2YxMGNlYTNiZi4uMDQ2OGJhOTFiYTUzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmgNCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oDQpAQCAtMjUsNyArMjUsNyBA
QA0KIA0KICNwcmFnbWEgb25jZQ0KIA0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNpZiBQ
TEFURk9STShDT0NPQSkNCiANCiAvLyBGSVhNRTogVW5kbyB3aGVuIGlzU3lzdGVtVm9pY2UgaXMg
YXZhaWxhYmxlIGluIGFsbCBTREtzLg0KICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAw
DQpAQCAtNDIsNSArNDIsNSBAQA0KIA0KICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQ0KIA0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkNCiANCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
U3BlZWNoU3ludGhlc2lzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3Bl
ZWNoU3ludGhlc2lzU1BJLmgNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYjkyOTc4
MmJlYjBjLi4wMDAwMDAwMDAwMDANCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNDMgKzAsMCBAQA0K
LS8qDQotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLg0KLSAqDQotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotICogYXJlIG1ldDoN
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSAqDQotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJw0KLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLA0KLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMNCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SDQotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YNCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTg0KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpDQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRg0KLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCi0gKi8NCi0NCi0jcHJhZ21hIG9uY2UN
Ci0NCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCi0NCi0jaW5jbHVkZSA8QXBwbGljYXRp
b25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzUHJpdi5oPg0KLQ0KLSNlbmRpZg0KLQ0KLVdU
Rl9FWFRFUk5fQ19CRUdJTg0KLQ0KLUNGQXJyYXlSZWYgQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNl
c0Zvck1vZGUoQ0ZUeXBlUmVmIG1vZGUpOw0KLSNpZiBIQVZFKFNQRUVDSFNZTlRIRVNJU19NT05U
RVJFWV9TUEkpDQotQ0ZTdHJpbmdSZWYgQ29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRW
b2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0j
ZWxzZQ0KLUNGU3RyaW5nUmVmIEdldElkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUlu
TGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZW5kaWYN
Ci0NCi1XVEZfRVhURVJOX0NfRU5EDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQNCmluZGV4IDNlYzkz
YjY5MTA2Ni4uZGEzYjlhMWQ1OWUzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dA0KKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KQEAgLTI1
NSw2ICsyNTUsNyBAQCBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRl
ci5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQ0KIHBsYXRmb3JtL2NvY29h
L1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0NCiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBh
c3RlYm9hcmRDb2NvYS5tbQ0KK3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQubW0NCiBwbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tDQog
cGxhdGZvcm0vY29jb2EvUmVtb3RlQ29tbWFuZExpc3RlbmVyQ29jb2EubW0NCkBAIC00MzcsNyAr
NDM4LDYgQEAgcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0NCiBwbGF0Zm9ybS9pb3MvUGxh
dGZvcm1FdmVudEZhY3RvcnlJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1BsYXRmb3Jt
UGFzdGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQ0KLXBs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIEBuby11bmlmeQ0KIHBs
YXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSBAbm8tdW5pZnkNCiBw
bGF0Zm9ybS9pb3MvUHJldmlld0NvbnZlcnRlcklPUy5tbQ0KIHBsYXRmb3JtL2lvcy9RdWlja0xv
b2subW0NCkBAIC00ODQsNyArNDg0LDYgQEAgcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRXcml0ZXIu
bW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0NCiBwbGF0Zm9ybS9t
YWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tDQogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVu
TWFjLm1tDQotcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0NCiBw
bGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIEBuby11bmlmeQ0KIHBs
YXRmb3JtL21hYy9QbHVnaW5CbG9ja2xpc3QubW0NCiBwbGF0Zm9ybS9tYWMvUG93ZXJPYnNlcnZl
ck1hYy5jcHANCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oNCmluZGV4IGE4ZmFhZmEyMWJhMS4uNWYwZDYyOWI3YTU0IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oNCkBAIC0zNzE3
LDcgKzM3MTcsNyBAQA0KIAkJQTlEMjQ4MDEwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2lu
QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5
RDI0N0ZEMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5LmggKi87IH07DQogCQlB
OUQyNDgwNzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDMwRDc1N0U3RDAwRkRGOTU5
IC8qIEpTRE9NTWltZVR5cGUuaCAqLzsgfTsNCiAJCUE5RDI0ODA5MEQ3NTdFN0QwMEZERjk1OSAv
KiBKU0RPTU1pbWVUeXBlQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE5RDI0ODA1MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJy
YXkuaCAqLzsgfTsNCi0JCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJJT1MubW0gKi87IH07DQorCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSAqLzsgfTsNCiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0
QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBQTA5NzhFRTBBQkFBNkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
DQogCQlBQTJBNUFDRTE2QTQ4NUZEMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMkE1QUM3MTZB
NDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oICovOyB9Ow0KIAkJQUEyQTVB
RDAxNkE0ODYwNDAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzUxNkE0ODVENTAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oICovOyB9Ow0KQEAgLTczMjIsNyAr
NzMyMiw2IEBADQogCQkyOUQ3QkNGOTE0NDRBRjdEMDA3MDYxOUMgLyogQWNjZXNzaWJpbGl0eVNw
aW5CdXR0b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0
eVNwaW5CdXR0b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTI5RTA0QTI3QkVE
MkY4MUY5OEU5MDIyQiAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTQmVmb3JlVW5sb2FkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsNCiAJCTI5RTREOERGMTZCMDk0MEYwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCi0JCTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAv
KiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTI5RkFGNEI1MTk1QUIwODkwMEE1MjJEQyAvKiBUZXh0
VW5kb0luc2VydGlvbk1hcmt1cE1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KIAkJMkE0MTA3QTAyNkNCNjZFRDAwM0JGNzk3IC8qIENTU0tleXdvcmRWYWx1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDU1NLZXl3b3JkVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9Ow0KIAkJMkE0MTA3QTIyNkNCNjZFRDAwM0JGNzk3IC8qIENTU0tleXdvcmRWYWx1ZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ1NTS2V5d29yZFZhbHVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsN
CkBAIC0xMzYyOCw3ICsxMzYyNyw3IEBADQogCQlBQURFRkU0MzI1QUY0RkNCMDA0MERENjcgLyog
Rm9jdXNPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvY3VzT3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzQxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsNCiAJCUFBRTI3Qjc1MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0K
LQkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KKwkJQUFF
Mzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFBRjVC
N0IxMTUyNEI0QkQwMDA0Q0I0OSAvKiBXZWJTb2NrZXRGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTb2NrZXRGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07DQogCQlBQjIzQTMyNTA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dElu
c2VydGVkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJl
Zm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJ
CUFCMjNBMzI2MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCkBAIC0yMjM5NCw3ICsyMjM5Myw2IEBADQog
CQkJCUJDQUE0ODZEMTRBMDUyNTMwMDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bSAqLywNCiAJCQkJQzVGNzY1QkExNEUxRUNGNDAwNkM4OTlCIC8qIFBsYXRmb3JtUGFzdGVib2Fy
ZE1hYy5tbSAqLywNCiAJCQkJQkM5NEQxMDcwQzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2Ny
ZWVuTWFjLm1tICovLA0KLQkJCQkyOUU0RDhFMDE2QjA5NTk4MDBDODQ3MDQgLyogUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplck1hYy5tbSAqLywNCiAJCQkJQ0RBMjlBMTUxQ0JEQTU2QzAwOTAxQ0NG
IC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oICovLA0KIAkJCQlDREEyOUExNDFDQkRB
NTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tICovLA0KIAkJCQkx
QUZGQzQ0RjFENUU3RUM3MDAyNjdBNjYgLyogUGx1Z2luQmxvY2tsaXN0LmggKi8sDQpAQCAtMjUw
NjMsNyArMjUwNjEsNiBAQA0KIAkJCQkyNjYwMUVCRTE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZv
cm1FdmVudEZhY3RvcnlJT1MubW0gKi8sDQogCQkJCUM1Mjc4QjBCMTdGMjEyRUEwMDNBMjk5OCAv
KiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gKi8sDQogCQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2
OTVDOCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAqLywNCi0JCQkJQUFFMzc1NUQxNzQyOUJDQzAw
NjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi8sDQogCQkJCUNEQTI5
QTJFMUNCRjczRkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oICov
LA0KIAkJCQlDREEyOUEyRjFDQkY3M0ZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlQVZLaXQubW0gKi8sDQogCQkJCUExQzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3
Q29udmVydGVySU9TLm1tICovLA0KQEAgLTI1MjIyLDYgKzI1MjE5LDcgQEANCiAJCQkJOUJFRDJD
QUYxRjdDQzA2MjAwNjY2MDE4IC8qIFBhc3RlYm9hcmRDb2NvYS5tbSAqLywNCiAJCQkJRjRGQjM1
MDAyMzUwQzk2MjAwRjAwOTRBIC8qIFBhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0gKi8sDQog
CQkJCUY0NjI4QTlFMjM0RDNCQkYwMEJDODg0QyAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5t
bSAqLywNCisJCQkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDb2NvYS5tbSAqLywNCiAJCQkJNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBs
YXRmb3JtVmlldy5oICovLA0KIAkJCQlDREEyOUEwQTFDQkQ5QTc0MDA5MDFDQ0YgLyogUGxheWJh
Y2tTZXNzaW9uTW9kZWwuaCAqLywNCiAJCQkJQ0RBMjlBMEQxQ0JEOUNGRTAwOTAxQ0NGIC8qIFBs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmggKi8sDQpAQCAtMzY5MTQsNyArMzY5MTIs
NyBAQA0KIAkJCQkxQTU2OUQxQTBEN0UyQjgyMDA3QzM5ODMgLyogb2JqY191dGlsaXR5Lm1tIGlu
IFNvdXJjZXMgKi8sDQogCQkJCUUxNjk4MjYwMTEzNDYzNkEwMDg5NDExNSAvKiBPYmpDUnVudGlt
ZU9iamVjdC5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDRUEyODQ2NjIxNDFFODQ5MDBFNDA3RTgg
LyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gaW4gU291cmNlcyAqLywNCi0JCQkJQUExMkRG
NDkxNzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4g
U291cmNlcyAqLywNCisJCQkJQUExMkRGNDkxNzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDREEyOUEzMDFDQkY3
NEQ0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gaW4gU291cmNl
cyAqLywNCiAJCQkJQ0RBMjlBMTYxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZU1hYy5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRG
Q0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLywN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbQ0Kc2ltaWxhcml0eSBpbmRleCA5NiUNCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
SU9TLm1tDQpyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplckNvY29hLm1tDQppbmRleCA1ODU4MjQ0NmJiNDYuLjBkZjFmMjg3NGEz
ZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVySU9TLm1tDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0NCkBAIC0yNSwxMSArMjUsMTEgQEANCiAj
aW1wb3J0ICJjb25maWcuaCINCiAjaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgi
DQogDQotI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZ
KQ0KKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oQ09DT0EpDQogDQog
I2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCINCiAjaW1wb3J0ICJQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmgiDQotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
U3BlZWNoU3ludGhlc2lzLmg+DQorI2ltcG9ydCA8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMu
aD4NCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oPg0KICNpbXBv
cnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+DQogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
Pg0KQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VN
YXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgIGlmICghbV91dHRlcmFuY2UpDQogICAgICAgICByZXR1
cm47DQogDQotICAgIC8vIGlPUyBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCisgICAg
Ly8gQVZTcGVlY2hTeW50aGVzaXplciBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCiAg
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgq
bV91dHRlcmFuY2UsIFdlYkNvcmU6OlNwZWVjaEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnks
IGNoYXJhY3RlclJhbmdlLmxvY2F0aW9uKTsNCiB9DQogDQpAQCAtMjc1LDcgKzI3NSw5IEBAIHZv
aWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6aW5pdGlhbGl6ZVZvaWNlTGlzdCgpDQogICAg
ICAgICAgICAgaW5jbHVkZVZvaWNlID0gdm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNp
c1ZvaWNlUXVhbGl0eURlZmF1bHQ7DQogICAgICAgICBpZiAoaW5jbHVkZVZvaWNlKQ0KICNlbHNl
DQotICAgICAgICBpZiAodm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVh
bGl0eURlZmF1bHQpDQorICAgICAgICAvLyBBVlNwZWVjaFN5bnRoZXNpcyBvbiBtYWNPUyBkb2Vz
IG5vdCBzdXBwb3J0IHF1YWxpdHkgcHJvcGVydHkgY29ycmVjdGx5Lg0KKyAgICAgICAgaWYgKHZv
aWNlLnF1YWxpdHkgPT0gQVZTcGVlY2hTeW50aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0IHx8DQor
ICAgICAgICAgICAgKFRBUkdFVF9PU19PU1ggJiYgIVt2b2ljZVVSSSBoYXNTdWZmaXg6QCJwcmVt
aXVtIl0pKQ0KICNlbmRpZg0KICAgICAgICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0
cnVlLCBpc0RlZmF1bHQpKTsNCiAgICAgfQ0KQEAgLTMxMiw0ICszMTQsNCBAQCB2b2lkIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KIA0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUNCiANCi0jZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JN
KElPU19GQU1JTFkpDQorI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFU
Rk9STShDT0NPQSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQNCmluZGV4IGZhNzQ2NWZmNzU5Yi4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KKysrIC9kZXYv
bnVsbA0KQEAgLTEsMjg5ICswLDAgQEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMNCi0gKiBhcmUgbWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQotICoN
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkNCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQ0KLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUg0KLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SDQotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
DQotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLA0KLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUg0KLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkNCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQN
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UNCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KLSAqLw0KLQ0KLSNpbXBvcnQgImNv
bmZpZy5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCi0NCi0jaWYg
RU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCi0NCi0jaW1wb3J0ICJQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2lzVm9pY2UuaCINCi0jaW1wb3J0IDxBcHBLaXQvTlNTcGVlY2hTeW50aGVzaXpl
ci5oPg0KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oPg0KLSNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4NCi0NCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dy
YXBwZXIgOiBOU09iamVjdDxOU1NwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KLSAgICBX
ZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0K
LSAgICAvLyBIb2xkIGEgUmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNh
cHBlYXIgdW50aWwgdGhlIHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCi0gICAgV2ViQ29yZTo6UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIG1fdXR0ZXJhbmNlOw0KLQ0KLSAgICBSZXRh
aW5QdHI8TlNTcGVlY2hTeW50aGVzaXplcj4gbV9zeW50aGVzaXplcjsNCi0gICAgZmxvYXQgbV9i
YXNlUGl0Y2g7DQotfQ0KLQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0V2l0
aFNwZWVjaFN5bnRoZXNpemVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyICop
c3ludGhlc2l6ZXI7DQotLSAodm9pZClzcGVha1V0dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgKil1dHRlcmFuY2U7DQotDQotQGVuZA0KLQ0KLUBpbXBs
ZW1lbnRhdGlvbiBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyDQotDQotLSAoV2ViU3BlZWNoU3lu
dGhlc2lzV3JhcHBlciAqKWluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6KFdlYkNvcmU6OlBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplcg0KLXsNCi0gICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0XSkpDQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSAgICBtX3N5bnRoZXNp
emVyT2JqZWN0ID0gc3ludGhlc2l6ZXI7DQotICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZvclN5
bnRoZXNpemVyXTsNCi0gICAgcmV0dXJuIHNlbGY7DQotfQ0KLQ0KLS8vIE5TU3BlZWNoU3ludGhl
c2l6ZXIgZXhwZWN0cyBhIFdvcmRzIHBlciBNaW51dGUgKFdQTSkgcmF0ZS4gVGhlcmUgaXMgbm8g
cHJlc2V0IGRlZmF1bHQNCi0vLyBidXQgdGhleSByZWNvbW1lbmQgdGhhdCBub3JtYWwgc3BlYWtp
bmcgaXMgMTgwLTIyMCBXUE0NCi0tIChmbG9hdCljb252ZXJ0UmF0ZVRvV1BNOihmbG9hdClyYXRl
DQotew0KLSAgICAvLyBXZSdsbCBzYXkgMjAwIFdQTSBpcyB0aGUgZGVmYXVsdCAxeCB2YWx1ZS4N
Ci0gICAgcmV0dXJuIDIwMC4wZiAqIHJhdGU7DQotfQ0KLQ0KLS0gKGZsb2F0KWNvbnZlcnRQaXRj
aFRvTlNTcGVlY2hWYWx1ZTooZmxvYXQpcGl0Y2gNCi17DQotICAgIC8vIFRoaXMgYWxsb3dzIHRo
ZSBiYXNlIHBpdGNoIHRvIHJhbmdlIGZyb20gMCUgLSAyMDAlIG9mIHRoZSBub3JtYWwgcGl0Y2gu
DQotICAgIHJldHVybiBtX2Jhc2VQaXRjaCAqIHBpdGNoOw0KLX0NCi0NCi0tICh2b2lkKXVwZGF0
ZUJhc2VQaXRjaEZvclN5bnRoZXNpemVyDQotew0KLSAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRj
aCB3aGVuZXZlciB3ZSBjaGFuZ2Ugdm9pY2VzLCBzaW5jZSB0aGUgYmFzZSBwaXRjaCBpcyBkaWZm
ZXJlbnQgZm9yIGVhY2ggdm9pY2UuDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpuaWwg
Zm9yUHJvcGVydHk6TlNTcGVlY2hSZXNldFByb3BlcnR5IGVycm9yOm5pbF07DQotICAgIG1fYmFz
ZVBpdGNoID0gW1ttX3N5bnRoZXNpemVyIG9iamVjdEZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hC
YXNlUHJvcGVydHkgZXJyb3I6bmlsXSBmbG9hdFZhbHVlXTsNCi19DQotDQotLSAodm9pZClzcGVh
a1V0dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgKil1
dHRlcmFuY2UNCi17DQotICAgIC8vIFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3Qg
aGF2ZSBhbiBleGlzdGluZyBzcGVlY2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0KLSAgICBBU1NF
UlQoIW1fdXR0ZXJhbmNlKTsNCi0gICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQotICAgIGlmICgh
bV9zeW50aGVzaXplcikgew0KLSAgICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1tOU1Nw
ZWVjaFN5bnRoZXNpemVyIGFsbG9jXSBpbml0V2l0aFZvaWNlOm5pbF0pOw0KLSAgICAgICAgW21f
c3ludGhlc2l6ZXIgc2V0RGVsZWdhdGU6c2VsZl07DQotICAgIH0NCi0NCi0gICAgLy8gRmluZCBp
ZiB3ZSBzaG91bGQgdXNlIGEgc3BlY2lmaWMgdm9pY2UgYmFzZWQgb24gdGhlIHZvaWNlVVJJIGlu
IHV0dGVyYW5jZS4NCi0gICAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSB2b2ljZSB0aGF0IG1hdGNo
ZXMgdGhlIGxhbmd1YWdlLiBUaGUgTWFjIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgdm9pY2UgcGVy
IGxhbmd1YWdlLCBzbyB0aGUgZmlyc3QNCi0gICAgLy8gb25lIHdpbGwgaGF2ZSB0byBkby4NCi0N
Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZSogdXR0ZXJhbmNlVm9p
Y2UgPSB1dHRlcmFuY2UtPnZvaWNlKCk7DQotICAgIC8vIElmIG5vIHZvaWNlIHdhcyBzcGVjaWZp
ZWQsIHRyeSB0byBtYXRjaCBieSBsYW5ndWFnZS4NCi0gICAgaWYgKCF1dHRlcmFuY2VWb2ljZSAm
JiAhdXR0ZXJhbmNlLT5sYW5nKCkuaXNFbXB0eSgpKSB7DQotICAgICAgICBmb3IgKGF1dG8mIHZv
aWNlIDogbV9zeW50aGVzaXplck9iamVjdC0+dm9pY2VMaXN0KCkpIHsNCi0gICAgICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh1dHRlcmFuY2UtPmxhbmcoKSwgdm9pY2UtPmxhbmco
KSkpIHsNCi0gICAgICAgICAgICAgICAgdXR0ZXJhbmNlVm9pY2UgPSB2b2ljZS5nZXQoKTsNCi0g
ICAgICAgICAgICAgICAgaWYgKHZvaWNlLT5pc0RlZmF1bHQoKSkNCi0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAgIH0NCi0gICAgfQ0KLQ0KLSAgICBO
U1N0cmluZyAqdm9pY2VVUkkgPSBuaWw7DQotICAgIGlmICh1dHRlcmFuY2VWb2ljZSkNCi0gICAg
ICAgIHZvaWNlVVJJID0gdXR0ZXJhbmNlVm9pY2UtPnZvaWNlVVJJKCk7DQotICAgIGVsc2UNCi0g
ICAgICAgIHZvaWNlVVJJID0gW05TU3BlZWNoU3ludGhlc2l6ZXIgZGVmYXVsdFZvaWNlXTsNCi0N
Ci0gICAgLy8gRG9uJ3Qgc2V0IHRoZSB2b2ljZSB1bmxlc3MgbmVjZXNzYXJ5LiBUaGVyZSdzIGEg
YnVnIGluIE5TU3BlZWNoU3ludGhlc2l6ZXIgc3VjaCB0aGF0DQotICAgIC8vIHNldHRpbmcgdGhl
IHZvaWNlIGZvciB0aGUgZmlyc3QgdGltZSB3aWxsIGNhdXNlIHRoZSBmaXJzdCBzcGVlY2hEb25l
IGNhbGxiYWNrIHRvIHJlcG9ydCBpdCB3YXMgdW5zdWNjZXNzZnVsLg0KLSAgICBCT09MIHVwZGF0
ZVBpdGNoID0gTk87DQotICAgIGlmICghW1ttX3N5bnRoZXNpemVyIHZvaWNlXSBpc0VxdWFsVG9T
dHJpbmc6dm9pY2VVUkldKSB7DQotICAgICAgICBbbV9zeW50aGVzaXplciBzZXRWb2ljZTp2b2lj
ZVVSSV07DQotICAgICAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBjaGFu
Z2Ugdm9pY2VzLg0KLSAgICAgICAgdXBkYXRlUGl0Y2ggPSBZRVM7DQotICAgIH0NCi0NCi0gICAg
aWYgKG1fYmFzZVBpdGNoID09IDAgfHwgdXBkYXRlUGl0Y2gpDQotICAgICAgICBbc2VsZiB1cGRh
dGVCYXNlUGl0Y2hGb3JTeW50aGVzaXplcl07DQotDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9i
amVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OltzZWxmIGNvbnZlcnRQaXRjaFRvTlNTcGVl
Y2hWYWx1ZTp1dHRlcmFuY2UtPnBpdGNoKCldXSBmb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFz
ZVByb3BlcnR5IGVycm9yOm5pbF07DQotICAgIFttX3N5bnRoZXNpemVyIHNldFJhdGU6W3NlbGYg
Y29udmVydFJhdGVUb1dQTTp1dHRlcmFuY2UtPnJhdGUoKV1dOw0KLSAgICBbbV9zeW50aGVzaXpl
ciBzZXRWb2x1bWU6dXR0ZXJhbmNlLT52b2x1bWUoKV07DQotDQotICAgIG1fdXR0ZXJhbmNlID0g
dXR0ZXJhbmNlOw0KLSAgICBbbV9zeW50aGVzaXplciBzdGFydFNwZWFraW5nU3RyaW5nOnV0dGVy
YW5jZS0+dGV4dCgpXTsNCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0
YXJ0U3BlYWtpbmcoKm1fdXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZClwYXVzZQ0KLXsNCi0g
ICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhl
c2l6ZXIgcGF1c2VTcGVha2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07
DQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRQYXVzZVNwZWFraW5nKCpt
X3V0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpcmVzdW1lDQotew0KLSAgICBpZiAoIW1fdXR0
ZXJhbmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBjb250aW51
ZVNwZWFraW5nXTsNCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFJlc3Vt
ZVNwZWFraW5nKCptX3V0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpY2FuY2VsDQotew0KLSAg
ICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVz
aXplciBzdG9wU3BlYWtpbmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0K
LSAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVk
KCptX3V0dGVyYW5jZSk7DQotICAgIG1fdXR0ZXJhbmNlID0gMDsNCi19DQotDQotLSAodm9pZClp
bnZhbGlkYXRlDQotew0KLSAgICBtX3V0dGVyYW5jZSA9IDA7DQotICAgIFttX3N5bnRoZXNpemVy
IHNldERlbGVnYXRlOm5pbF07DQotICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVha2luZ0F0Qm91
bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNo
U3ludGhlc2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgZGlkRmluaXNoU3BlYWtp
bmc6KEJPT0wpZmluaXNoZWRTcGVha2luZw0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0g
ICAgICAgIHJldHVybjsNCi0NCi0gICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7DQotDQotICAgIC8v
IENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBr
aWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7
DQotICAgIG1fdXR0ZXJhbmNlID0gMDsNCi0NCi0gICAgaWYgKGZpbmlzaGVkU3BlYWtpbmcpDQot
ICAgICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmco
KnV0dGVyYW5jZSk7DQotICAgIGVsc2UNCi0gICAgICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNs
aWVudCgpLT5zcGVha2luZ0Vycm9yT2NjdXJyZWQoKnV0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZv
aWQpc3BlZWNoU3ludGhlc2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgd2lsbFNw
ZWFrV29yZDooTlNSYW5nZSljaGFyYWN0ZXJSYW5nZSBvZlN0cmluZzooTlNTdHJpbmcgKilzdHJp
bmcNCi17DQotICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOw0KLSAgICBVTlVTRURfUEFSQU0oc3Ry
aW5nKTsNCi0NCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0g
ICAgLy8gTWFjIHBsYXRmb3JtIG9ubHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KLSAgICBt
X3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0
dGVyYW5jZSwgV2ViQ29yZTo6U3BlZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hh
cmFjdGVyUmFuZ2UubG9jYXRpb24pOw0KLX0NCi0NCi1AZW5kDQotDQotbmFtZXNwYWNlIFdlYkNv
cmUgew0KLQ0KLVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KQ0KLSAgICA6IG1f
c3BlZWNoU3ludGhlc2l6ZXJDbGllbnQoY2xpZW50KQ0KLXsNCi19DQotDQotUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoKQ0KLXsNCi0gICAgW21f
cGxhdGZvcm1TcGVlY2hXcmFwcGVyIGludmFsaWRhdGVdOw0KLX0NCi0NCi1zdGF0aWMgUmV0YWlu
UHRyPENGQXJyYXlSZWY+IHNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKQ0KLXsN
Ci0gICAgLy8gR2V0IGFsbCB0aGUgdm9pY2VzIG9mZmVyZWQgYnkgVFRTLg0KLSAgICAvLyBCeSBk
ZWZhdWx0IHNwZWVjaCBvbmx5IHJldHVybnMgInByZW1pdW0iIHZvaWNlcywgd2hpY2ggZG9lcyBu
b3QgaW5jbHVkZSBhbGwgdGhlDQotICAgIC8vIGludGVybmF0aW9uYWwgdm9pY2VzLiBUaGlzIGFs
bG93cyB1cyB0byBvZmZlciBzcGVlY2ggc3ludGhlc2lzIGZvciBhbGwgc3VwcG9ydGVkIGxhbmd1
YWdlcy4NCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1v
ZGUoKF9fYnJpZGdlIENGQXJyYXlSZWYpQFsgQCJWb2ljZUdyb3VwRGVmYXVsdCIsIEAiVm9pY2VH
cm91cENvbXBhY3QiIF0pKTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
c3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZShOU0xvY2Fs
ZSAqdXNlckxvY2FsZSkNCi17DQotICAgIGlmICghdXNlckxvY2FsZSkNCi0gICAgICAgIHJldHVy
biBuaWw7DQotDQotI2lmIEhBVkUoU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0gICAg
cmV0dXJuIGFkb3B0Q0YoQ29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlz
dFdpdGhMb2NhbGUoc3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAo
X19icmlkZ2UgQ0ZMb2NhbGVSZWYpdXNlckxvY2FsZSkpOw0KLSNlbHNlDQotICAgIHJldHVybiBH
ZXRJZGVudGlmaWVyU3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVj
aFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxl
UmVmKXVzZXJMb2NhbGUpOw0KLSNlbmRpZg0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXI6OmluaXRpYWxpemVWb2ljZUxpc3QoKQ0KLXsNCi0gICAgYXV0byBhdmFpbGFibGVW
b2ljZXMgPSBzcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCk7DQotICAgIE5TVUlu
dGVnZXIgY291bnQgPSBbKF9fYnJpZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0KCkg
Y291bnRdOw0KLSAgICBmb3IgKE5TVUludGVnZXIgayA9IDA7IGsgPCBjb3VudDsgaysrKSB7DQot
ICAgICAgICBOU1N0cmluZyAqdm9pY2VOYW1lID0gWyhfX2JyaWRnZSBOU0FycmF5ICopYXZhaWxh
YmxlVm9pY2VzLmdldCgpIG9iamVjdEF0SW5kZXg6a107DQotICAgICAgICBOU0RpY3Rpb25hcnkg
KmF0dHJpYnV0ZXMgPSBbTlNTcGVlY2hTeW50aGVzaXplciBhdHRyaWJ1dGVzRm9yVm9pY2U6dm9p
Y2VOYW1lXTsNCi0NCi0gICAgICAgIE5TU3RyaW5nICp2b2ljZVVSSSA9IFthdHRyaWJ1dGVzIG9i
amVjdEZvcktleTpOU1ZvaWNlSWRlbnRpZmllcl07DQotICAgICAgICBOU1N0cmluZyAqbmFtZSA9
IFthdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1ZvaWNlTmFtZV07DQotICAgICAgICBOU1N0cmlu
ZyAqbGFuZ3VhZ2UgPSBbYXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUxvY2FsZUlkZW50
aWZpZXJdOw0KLSAgICAgICAgYXV0byBkZWZhdWx0Vm9pY2VVUkkgPSBzcGVlY2hTeW50aGVzaXNH
ZXREZWZhdWx0Vm9pY2VJZGVudGlmaWVyRm9yTG9jYWxlKGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxv
Y10gaW5pdFdpdGhMb2NhbGVJZGVudGlmaWVyOmxhbmd1YWdlXSkuZ2V0KCkpOw0KLQ0KLSAgICAg
ICAgLy8gQ2hhbmdlIHRvIEJDUC00NyBmb3JtYXQgYXMgZGVmaW5lZCBieSBzcGVjLg0KLSAgICAg
ICAgbGFuZ3VhZ2UgPSBbbGFuZ3VhZ2Ugc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09mU3Ry
aW5nOkAiXyIgd2l0aFN0cmluZzpAIi0iXTsNCi0NCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0ID0g
WyhfX2JyaWRnZSBOU1N0cmluZyAqKWRlZmF1bHRWb2ljZVVSSS5nZXQoKSBpc0VxdWFsVG9TdHJp
bmc6dm9pY2VVUkldOw0KLQ0KLSAgICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUs
IGlzRGVmYXVsdCkpOw0KLSAgICB9DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcjo6cGF1c2UoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHBhdXNlXTsN
Ci19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUoKQ0KLXsNCi0g
ICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHJlc3VtZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplcjo6c3BlYWsoUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlPiYmIHV0dGVyYW5jZSkNCi17DQotICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdy
YXBwZXIpDQotICAgICAgICBtX3BsYXRmb3JtU3BlZWNoV3JhcHBlciA9IGFkb3B0TlMoW1tXZWJT
cGVlY2hTeW50aGVzaXNXcmFwcGVyIGFsbG9jXSBpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOnRo
aXNdKTsNCi0NCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHNwZWFrVXR0ZXJhbmNlOnV0
dGVyYW5jZS5nZXQoKV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6
Y2FuY2VsKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KLX0N
Ci0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KLXsNCi0g
ICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUNCi0NCi0jZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBM
QVRGT1JNKE1BQykNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441607</attachid>
            <date>2021-10-18 08:49:40 -0700</date>
            <delta_ts>2021-10-20 08:22:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>33957</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cN
CmluZGV4IDBkN2I2ZDU0ZDRlZS4uZjAwNTU2OWY0ZDFjIDEwMDY0NA0KLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEzIEBA
DQorMjAyMS0xMC0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0K
KyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3Ig
TWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhh
dmUuaDoNCisNCiAyMDIxLTEwLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4NCiANCiAgICAgICAgIFtHTElCXSBTaW1wbGlmeSBTbGVlcERpc2FibGVyIGJ5IGNo
ZWNraW5nIGlmIHdlIGFyZSB1bmRlciBzYW5kYm94DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaA0KaW5kZXgg
OTAwN2U2ZTZlN2FlLi5mMzJkYWNhNmUxZmMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUhhdmUuaA0KKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCkBAIC03
NTksNyArNzU5LDcgQEANCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgKFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxNDAzMDANCisjaWYgKChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQwMzAwKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAw
MCkNCiAjaWYgIWRlZmluZWQoSEFWRV9BVlNQRUVDSFNZTlRIRVNJU19TWVNURU1WT0lDRSkNCiAj
ZGVmaW5lIEhBVkVfQVZTUEVFQ0hTWU5USEVTSVNfU1lTVEVNVk9JQ0UgMQ0KICNlbmRpZg0KQEAg
LTc3MSwxMiArNzcxLDYgQEANCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMA0KLSNpZiAhZGVm
aW5lZChIQVZFX1NQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotI2RlZmluZSBIQVZFX1NQ
RUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkgMQ0KLSNlbmRpZg0KLSNlbmRpZg0KLQ0KICNpZiBD
T01QSUxFUihHQ0NfQ09NUEFUSUJMRSkgJiYgZGVmaW5lZChfX2hhc19hdHRyaWJ1dGUpDQogI2lm
IF9faGFzX2F0dHJpYnV0ZShvYmpjX2RpcmVjdCkgJiYgKCFQTEFURk9STShNQUMpIHx8IF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQ0KICNpZiAhZGVmaW5lZChIQVZF
X05TX0RJUkVDVF9TVVBQT1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KaW5kZXggN2ZkN2IwMWNjM2JiLi4yY2FkNDg0
NmU1NmMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZw0KQEAgLTEsMyArMSw0MCBAQA0KKzIwMjEtMTAtMTggIENocmlz
IEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBz
cGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLg0KKw0KKyAgICAgICAgQVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBz
dXBwb3J0ZWQgb24gbWFjT1MgZm9yIGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0
byB1bmlmeSBwbGF0Zm9ybSB1c2FnZS4NCisNCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoN
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOg0KKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcklPUy5tbS4NCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hS
YXRlKToNCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKToN
CisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgaW5pdFdpdGhTcGVlY2hTeW50
aGVzaXplcjpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgbWFwU3Bl
ZWNoUmF0ZVRvUGxhdGZvcm1SYXRlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lz
V3JhcHBlciBzcGVha1V0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNp
c1dyYXBwZXIgcGF1c2VdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIg
cmVzdW1lXSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIGNhbmNlbF0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRTdGFydFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkRmluaXNoU3BlZWNoVXR0ZXJhbmNlOl0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRQYXVzZVNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkQ29udGludWVTcGVlY2hVdHRlcmFuY2U6
XSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIHNwZWVjaFN5bnRoZXNp
emVyOmRpZENhbmNlbFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5
bnRoZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6d2lsbFNwZWFrUmFuZ2VPZlNwZWVjaFN0
cmluZzp1dHRlcmFuY2U6XSk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcik6DQorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOg0K
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVW
b2ljZUxpc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6
OnBhdXNlKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpy
ZXN1bWUpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnNw
ZWFrKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5j
ZWwpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0
U3RhdGUpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1hYy5tbTogUmVtb3ZlZC4NCisNCiAyMDIxLTEwLTE4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+DQogDQogICAgICAgICBDb2NvYSBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCBzaG91bGQgbm90IHVzZSBXZWJHTExheWVyDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cNCmluZGV4IDM2Mjhj
ZDM2ZDRiMS4uN2Y1YWJlMWI1Mzk1IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NyBAQA0KKzIwMjEtMTAtMTggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBQQUwueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoNCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLmg6DQorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToN
CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BWFNwZWVjaE1hbmFnZXJTUEkuaDoNCisgICAgICAg
ICogcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmg6IFJlbW92ZWQuDQorDQogMjAyMS0x
MC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPg0KIA0KICAgICAgICAgQnVn
IDIzMTg4MjogV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRUQ0NJZGVudGl0
eSgpIGxlYWtzIGEgdGNjX2lkZW50aXR5X3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFM
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oNCmluZGV4IGM2ZGE2MDA1ZDBiOC4uMGNhMzNlZGQ2
ZWI0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oNCkBAIC0xNjksNyArMTY5LDYgQEANCiAJCUExMDgyNkY5MUY1NzYyOTIwMDQ3NzJB
QyAvKiBXZWJQYW5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTEwODI2RjcxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLmggKi87IH07DQogCQlB
MTA4MjZGQTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA4MjZGODFGNTc2MjkyMDA0NzcyQUMgLyog
V2ViUGFuZWwubW0gKi87IH07DQogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFw
aGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsNCi0JCUEx
MTc1QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjQ4MUY2QUZGOEUwMEM0
QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCAqLzsgfTsNCiAJCUExMTc1QjRCMUY2QjJEN0Uw
MEM0QjlGMCAvKiBOU0NlbGxTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExMTc1QjRBMUY2QjJEN0UwMEM0QjlGMCAvKiBOU0NlbGxTUEkuaCAqLzsg
fTsNCiAJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMwMEM0
QjlGMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsNCiAJCUExMTc1QjRGMUY2QjMzNzMwMEM0QjlGMCAv
KiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovOyB9Ow0KQEAg
LTM5Niw3ICszOTUsNiBAQA0KIAkJQTEwODI2RjcxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
DQogCQlBMTA4MjZGODFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJQYW5lbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUEx
MDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5TR3JhcGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCi0JCUExMTc1QjQ4
MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoU3ludGhlc2lzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3
NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TQ2Vs
bFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTExNzVCNEMxRjZCMzM3MzAw
QzRCOUYwIC8qIFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1
cE1lbnUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQb3B1cE1lbnUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07DQpAQCAtNjQzLDcgKzY0MSw2IEBADQogCQkJCTBDNzc4NTg0MUY0NTEz
MEYwMEY0RUJCNiAvKiBOU1dpbmRvd1NQSS5oICovLA0KIAkJCQkwQzc3ODU4NTFGNDUxMzBGMDBG
NEVCQjYgLyogUElQU1BJLmggKi8sDQogCQkJCTBDNzc4NTg3MUY0NTEzMEYwMEY0RUJCNiAvKiBR
dWlja0xvb2tNYWNTUEkuaCAqLywNCi0JCQkJQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYwIC8qIFNw
ZWVjaFN5bnRoZXNpc1NQSS5oICovLA0KIAkJCQk3MUIxMTQxRjI2ODIzQUNEMDA0RDY3MDEgLyog
U3lzdGVtUHJldmlld1NQSS5oICovLA0KIAkJCQkwQzc3ODU4ODFGNDUxMzBGMDBGNEVCQjYgLyog
VGVsZXBob255VXRpbGl0aWVzU1BJLmggKi8sDQogCQkJKTsNCkBAIC0xMDEyLDcgKzEwMDksNiBA
QA0KIAkJCQlBMzc4OEU5ODFGMDVCNkNFMDA2Nzk0MjUgLyogU291bmQuaCBpbiBIZWFkZXJzICov
LA0KIAkJCQk5M0IzOEVCRTI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCBpbiBI
ZWFkZXJzICovLA0KIAkJCQk5M0IzOEVDMjI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmgg
aW4gSGVhZGVycyAqLywNCi0JCQkJQTExNzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5
bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTBDNUFGOTIxMUY0M0E0QzcwMDJFQUMw
MiAvKiBTUUxpdGUzU1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJNzFCMTE0MjAyNjgyM0FDRDAw
NEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkzMTMwOEIx
NDIwQTIxNzA1MDAzRkI5MjkgLyogU3lzdGVtUHJldmlld1NQSS5oIGluIEhlYWRlcnMgKi8sDQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oDQppbmRleCA5ZGI5YWY4ZjdlYzEuLmE3MzcwOTc3YmRjOCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oDQpAQCAtNzYs
NiArNzYsOSBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3RyZWFtU2Vzc2lv
bikNCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURF
UihQQUwsIEFWQXVkaW9TZXNzaW9uKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwg
QVZQZXJzaXN0YWJsZUNvbnRlbnRLZXlSZXF1ZXN0KQ0KKyNlbmRpZg0KKw0KKyNpZiBQTEFURk9S
TShDT0NPQSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoU3ludGhl
c2lzVm9pY2UpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFN5bnRo
ZXNpemVyKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hVdHRlcmFu
Y2UpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW0NCmluZGV4IGQyMWQ0OWNkNzcwMi4uYmQ2ZWJiY2I5OTEzIDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQ0K
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5t
bQ0KQEAgLTEwMiw2ICsxMDIsOSBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uLCBQQUxfRQ0KICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbiwgUEFMX0VYUE9SVCkNCiBTT0ZUX0xJ
TktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZQZXJz
aXN0YWJsZUNvbnRlbnRLZXlSZXF1ZXN0LCBQQUxfRVhQT1JUKQ0KKyNlbmRpZg0KKw0KKyNpZiBQ
TEFURk9STShDT0NPQSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hTeW50aGVzaXNWb2ljZSwgUEFMX0VYUE9SVCkNCiBT
T0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwg
QVZTcGVlY2hTeW50aGVzaXplciwgUEFMX0VYUE9SVCkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hVdHRlcmFuY2UsIFBB
TF9FWFBPUlQpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVhTcGVlY2hNYW5hZ2VyU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9B
WFNwZWVjaE1hbmFnZXJTUEkuaA0KaW5kZXggZmVjZjEwY2VhM2JmLi4wNDY4YmE5MWJhNTMgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BWFNwZWVjaE1hbmFn
ZXJTUEkuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hN
YW5hZ2VyU1BJLmgNCkBAIC0yNSw3ICsyNSw3IEBADQogDQogI3ByYWdtYSBvbmNlDQogDQotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIFBMQVRGT1JNKENPQ09BKQ0KIA0KIC8vIEZJWE1F
OiBVbmRvIHdoZW4gaXNTeXN0ZW1Wb2ljZSBpcyBhdmFpbGFibGUgaW4gYWxsIFNES3MuDQogI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIDANCkBAIC00Miw1ICs0Miw1IEBADQogDQogI2Vu
ZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspDQogDQotI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpDQorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQ0KIA0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0DQppbmRleCBiOTI5NzgyYmViMGMuLjAwMDAwMDAwMDAwMA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oDQorKysg
L2Rldi9udWxsDQpAQCAtMSw0MyArMCwwIEBADQotLyoNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQN
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMNCi0gKiBhcmUgbWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQot
ICoNCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnDQotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sDQotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
Ug0KLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUw0KLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1INCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
Rg0KLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElODQotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkNCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GDQotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLg0KLSAqLw0KLQ0KLSNwcmFnbWEgb25jZQ0KLQ0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQ0KLQ0KLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2Vydmlj
ZXNQcml2Lmg+DQotDQotI2VuZGlmDQotDQotV1RGX0VYVEVSTl9DX0JFR0lODQotDQotQ0ZBcnJh
eVJlZiBDb3B5U3BlZWNoU3ludGhlc2lzVm9pY2VzRm9yTW9kZShDRlR5cGVSZWYgbW9kZSk7DQot
I2lmIEhBVkUoU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi1DRlN0cmluZ1JlZiBDb3B5
SWRlbnRpZmllclN0cmluZ0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShDRkFycmF5
UmVmIHZvaWNlcywgQ0ZMb2NhbGVSZWYpOw0KLSNlbHNlDQotQ0ZTdHJpbmdSZWYgR2V0SWRlbnRp
ZmllclN0cmluZ0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShDRkFycmF5UmVmIHZv
aWNlcywgQ0ZMb2NhbGVSZWYpOw0KLSNlbmRpZg0KLQ0KLVdURl9FWFRFUk5fQ19FTkQNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dA0KaW5kZXggZjYzNDUzMmUxN2MwLi4yNTFiMDUzYWQwYjYgMTAwNjQ0
DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0DQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0DQpAQCAtMjU1LDYgKzI1NSw3IEBAIHBsYXRmb3JtL2NvY29h
L1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tDQogcGxhdGZvcm0vY29jb2EvUGFzdGVi
b2FyZENvY29hLm1tDQogcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5t
bQ0KIHBsYXRmb3JtL2NvY29hL1BsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tDQorcGxhdGZvcm0v
Y29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9y
bS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQ0KIHBsYXRmb3JtL2Nv
Y29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0NCiBwbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21tYW5k
TGlzdGVuZXJDb2NvYS5tbQ0KQEAgLTQzOCw3ICs0MzksNiBAQCBwbGF0Zm9ybS9pb3MvUGFzdGVi
b2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBAbm8t
dW5pZnkNCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tDQogcGxhdGZvcm0v
aW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tDQotcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZUFWS2l0Lm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVydGVy
SU9TLm1tDQogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQ0KQEAgLTQ4NSw3ICs0ODUsNiBAQCBw
bGF0Zm9ybS9tYWMvUGFzdGVib2FyZFdyaXRlci5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0N
CiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0NCi1wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VNYWMubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vbWFjL1BsdWdpbkJsb2NrbGlzdC5t
bQ0KIHBsYXRmb3JtL21hYy9Qb3dlck9ic2VydmVyTWFjLmNwcA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5kZXggMjFjYjczZGU3ZDg2
Li4yNDY4ZmE3NDFmNzUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvag0KQEAgLTM3MjEsNyArMzcyMSw3IEBADQogCQlBOUQyNDgwMTBE
NzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ3RkQwRDc1N0U2OTAwRkRGOTU5IC8qIEpT
RE9NUGx1Z2luQXJyYXkuaCAqLzsgfTsNCiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBK
U0RPTU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOUQyNDgwMzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9Ow0K
IAkJQTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1N0U3
RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9Ow0KLQkJQUExMkRGNDkxNzQz
REY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5QkNDMDA2
MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLzsgfTsNCisJCUFBMTJE
RjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3
NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovOyB9
Ow0KIAkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMDk3OEVFMEFC
QUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsNCiAJCUFBMkE1QUNFMTZBNDg1RkQwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpc1ZvaWNlLmggKi87IH07DQogCQlBQTJBNUFEMDE2QTQ4NjA0MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmggKi87IH07DQpAQCAtNzMyNiw3ICs3MzI2LDYgQEANCiAJCTI5RDdCQ0Y5MTQ0NEFG
N0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9Ow0KIAkJMjlFMDRBMjdCRUQyRjgxRjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5s
b2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCZWZvcmVVbmxv
YWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFNEQ4REYxNkIwOTQw
RjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0K
LQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlG
QUY0QjUxOTVBQjA4OTAwQTUyMkRDIC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMDI2Q0I2NkVEMDAzQkY3
OTcgLyogQ1NTS2V5d29yZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0tleXdvcmRW
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMjI2Q0I2NkVE
MDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NLZXl3b3JkVmFsdWUuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTEzNjQ3LDcgKzEzNjQ2LDcgQEANCiAJ
CUFBREVGRTQzMjVBRjRGQ0IwMDQwREQ2NyAvKiBGb2N1c09wdGlvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRm9jdXNPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUUyN0I3
NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzUxNkNC
RkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIg
LyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07DQorCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFGNUI3QjExNTI0QjRCRDAwMDRDQjQ5IC8qIFdlYlNv
Y2tldEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNv
Y2tldEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI1MDlC
QkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUIyM0EzMjYwOUJCQTdEMDAwNjdDQzUzIC8q
IEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KQEAgLTIyNDEzLDcgKzIyNDEyLDYgQEANCiAJCQkJQkNBQTQ4NkQxNEEwNTI1MzAwODhGQUM0
IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tICovLA0KIAkJCQlDNUY3NjVCQTE0RTFFQ0Y0
MDA2Qzg5OUIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tICovLA0KIAkJCQlCQzk0RDEwNzBD
Mjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sDQotCQkJCTI5RTREOEUw
MTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICovLA0K
IAkJCQlDREEyOUExNTFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjLmggKi8sDQogCQkJCUNEQTI5QTE0MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWMubW0gKi8sDQogCQkJCTFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAvKiBQ
bHVnaW5CbG9ja2xpc3QuaCAqLywNCkBAIC0yNTA4Miw3ICsyNTA4MCw2IEBADQogCQkJCTI2NjAx
RUJFMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSAqLywNCiAJ
CQkJQzUyNzhCMEIxN0YyMTJFQTAwM0EyOTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbSAq
LywNCiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9TLm1t
ICovLA0KLQkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcklPUy5tbSAqLywNCiAJCQkJQ0RBMjlBMkUxQ0JGNzNGQzAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmggKi8sDQogCQkJCUNEQTI5QTJGMUNCRjczRkMwMDkw
MUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSAqLywNCiAJCQkJQTFDMTUw
NzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXJJT1MubW0gKi8sDQpAQCAtMjUy
NDEsNiArMjUyMzgsNyBAQA0KIAkJCQk5QkVEMkNBRjFGN0NDMDYyMDA2NjYwMTggLyogUGFzdGVi
b2FyZENvY29hLm1tICovLA0KIAkJCQlGNEZCMzUwMDIzNTBDOTYyMDBGMDA5NEEgLyogUGFzdGVi
b2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLywNCiAJCQkJRjQ2MjhBOUUyMzREM0JCRjAwQkM4ODRD
IC8qIFBsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tICovLA0KKwkJCQlBQUUzNzU1RDE3NDI5QkND
MDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovLA0KIAkJCQk1
MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8sDQogCQkJCUNEQTI5
QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbC5oICovLA0KIAkJCQlD
REEyOUEwRDFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQuaCAqLywNCkBAIC0zNjk1Miw3ICszNjk1MCw3IEBADQogCQkJCTFBNTY5RDFBMEQ3RTJCODIw
MDdDMzk4MyAvKiBvYmpjX3V0aWxpdHkubW0gaW4gU291cmNlcyAqLywNCiAJCQkJRTE2OTgyNjAx
MTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sDQog
CQkJCUNFQTI4NDY2MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5t
bSBpbiBTb3VyY2VzICovLA0KLQkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLA0KKwkJCQlBQTEyREY0OTE3
NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGluIFNv
dXJjZXMgKi8sDQogCQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDREEyOUExNjFDQkRBNTZD
MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGluIFNvdXJjZXMgKi8s
DQogCQkJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tDQpz
aW1pbGFyaXR5IGluZGV4IDk2JQ0KcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCnJlbmFtZSB0byBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0NCmlu
ZGV4IDU4NTgyNDQ2YmI0Ni4uMGRmMWYyODc0YTNmIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2Nv
YS5tbQ0KQEAgLTI1LDExICsyNSwxMSBAQA0KICNpbXBvcnQgImNvbmZpZy5oIg0KICNpbXBvcnQg
IlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCiANCi0jaWYgRU5BQkxFKFNQRUVDSF9TWU5U
SEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKSAmJiBQTEFURk9STShDT0NPQSkNCiANCiAjaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5oIg0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2Uu
aCINCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisjaW1wb3J0
IDxBVkZBdWRpby9BVlNwZWVjaFN5bnRoZXNpcy5oPg0KICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
QVhTcGVlY2hNYW5hZ2VyU1BJLmg+DQogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4NCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+DQpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRp
YyBmbG9hdCBnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiAgICAgaWYg
KCFtX3V0dGVyYW5jZSkNCiAgICAgICAgIHJldHVybjsNCiANCi0gICAgLy8gaU9TIG9ubHkgc3Vw
cG9ydHMgd29yZCBib3VuZGFyaWVzLg0KKyAgICAvLyBBVlNwZWVjaFN5bnRoZXNpemVyIG9ubHkg
c3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGll
bnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVyYW5jZSwgV2ViQ29yZTo6U3BlZWNo
Qm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFjdGVyUmFuZ2UubG9jYXRpb24pOw0K
IH0NCiANCkBAIC0yNzUsNyArMjc1LDkgQEAgdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
Ojppbml0aWFsaXplVm9pY2VMaXN0KCkNCiAgICAgICAgICAgICBpbmNsdWRlVm9pY2UgPSB2b2lj
ZS5xdWFsaXR5ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5RGVmYXVsdDsNCiAgICAg
ICAgIGlmIChpbmNsdWRlVm9pY2UpDQogI2Vsc2UNCi0gICAgICAgIGlmICh2b2ljZS5xdWFsaXR5
ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5RGVmYXVsdCkNCisgICAgICAgIC8vIEFW
U3BlZWNoU3ludGhlc2lzIG9uIG1hY09TIGRvZXMgbm90IHN1cHBvcnQgcXVhbGl0eSBwcm9wZXJ0
eSBjb3JyZWN0bHkuDQorICAgICAgICBpZiAodm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRo
ZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQgfHwNCisgICAgICAgICAgICAoVEFSR0VUX09TX09TWCAm
JiAhW3ZvaWNlVVJJIGhhc1N1ZmZpeDpAInByZW1pdW0iXSkpDQogI2VuZGlmDQogICAgICAgICAg
ICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0
ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlzRGVmYXVsdCkpOw0KICAgICB9DQpA
QCAtMzEyLDQgKzMxNCw0IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cmVzZXRT
dGF0ZSgpDQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KIA0KLSNlbmRpZiAvLyBFTkFCTEUo
U1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCisjZW5kaWYgLy8gRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKENPQ09BKQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
YWMubW0NCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggZmE3NDY1ZmY3NTliLi4wMDAw
MDAwMDAwMDANCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTWFjLm1tDQorKysgL2Rldi9udWxsDQpAQCAtMSwyODkgKzAsMCBAQA0KLS8q
DQotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4NCi0gKg0KLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KLSAqIGFyZSBtZXQ6DQot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQNCi0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlDQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCi0gKg0KLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQ0KLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSDQotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1INCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwNCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sDQotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SDQotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQ0KLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQ0KLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuDQotICovDQotDQotI2ltcG9ydCAiY29uZmlnLmgiDQotI2ltcG9ydCAiUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplci5oIg0KLQ0KLSNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYg
UExBVEZPUk0oTUFDKQ0KLQ0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmgiDQotI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5oIg0KLSNpbXBv
cnQgPEFwcEtpdC9OU1NwZWVjaFN5bnRoZXNpemVyLmg+DQotI2ltcG9ydCA8cGFsL3NwaS9tYWMv
U3BlZWNoU3ludGhlc2lzU1BJLmg+DQotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPg0KLQ0KLUBp
bnRlcmZhY2UgV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciA6IE5TT2JqZWN0PE5TU3BlZWNoU3lu
dGhlc2l6ZXJEZWxlZ2F0ZT4NCi17DQotICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIqIG1fc3ludGhlc2l6ZXJPYmplY3Q7DQotICAgIC8vIEhvbGQgYSBSZWYgdG8gdGhlIHV0
dGVyYW5jZSBzbyB0aGF0IGl0IHdvbid0IGRpc2FwcGVhciB1bnRpbCB0aGUgc3ludGggaXMgZG9u
ZSB3aXRoIGl0Lg0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZSogbV91dHRlcmFuY2U7DQotDQotICAgIFJldGFpblB0cjxOU1NwZWVjaFN5bnRoZXNpemVyPiBt
X3N5bnRoZXNpemVyOw0KLSAgICBmbG9hdCBtX2Jhc2VQaXRjaDsNCi19DQotDQotLSAoV2ViU3Bl
ZWNoU3ludGhlc2lzV3JhcHBlciAqKWluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6KFdlYkNvcmU6
OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplcjsNCi0tICh2b2lkKXNwZWFr
VXR0ZXJhbmNlOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSAqKXV0
dGVyYW5jZTsNCi0NCi1AZW5kDQotDQotQGltcGxlbWVudGF0aW9uIFdlYlNwZWVjaFN5bnRoZXNp
c1dyYXBwZXINCi0NCi0tIChXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyICopaW5pdFdpdGhTcGVl
Y2hTeW50aGVzaXplcjooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciAqKXN5bnRo
ZXNpemVyDQotew0KLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkNCi0gICAgICAgIHJl
dHVybiBuaWw7DQotDQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QgPSBzeW50aGVzaXplcjsNCi0g
ICAgW3NlbGYgdXBkYXRlQmFzZVBpdGNoRm9yU3ludGhlc2l6ZXJdOw0KLSAgICByZXR1cm4gc2Vs
ZjsNCi19DQotDQotLy8gTlNTcGVlY2hTeW50aGVzaXplciBleHBlY3RzIGEgV29yZHMgcGVyIE1p
bnV0ZSAoV1BNKSByYXRlLiBUaGVyZSBpcyBubyBwcmVzZXQgZGVmYXVsdA0KLS8vIGJ1dCB0aGV5
IHJlY29tbWVuZCB0aGF0IG5vcm1hbCBzcGVha2luZyBpcyAxODAtMjIwIFdQTQ0KLS0gKGZsb2F0
KWNvbnZlcnRSYXRlVG9XUE06KGZsb2F0KXJhdGUNCi17DQotICAgIC8vIFdlJ2xsIHNheSAyMDAg
V1BNIGlzIHRoZSBkZWZhdWx0IDF4IHZhbHVlLg0KLSAgICByZXR1cm4gMjAwLjBmICogcmF0ZTsN
Ci19DQotDQotLSAoZmxvYXQpY29udmVydFBpdGNoVG9OU1NwZWVjaFZhbHVlOihmbG9hdClwaXRj
aA0KLXsNCi0gICAgLy8gVGhpcyBhbGxvd3MgdGhlIGJhc2UgcGl0Y2ggdG8gcmFuZ2UgZnJvbSAw
JSAtIDIwMCUgb2YgdGhlIG5vcm1hbCBwaXRjaC4NCi0gICAgcmV0dXJuIG1fYmFzZVBpdGNoICog
cGl0Y2g7DQotfQ0KLQ0KLS0gKHZvaWQpdXBkYXRlQmFzZVBpdGNoRm9yU3ludGhlc2l6ZXINCi17
DQotICAgIC8vIFJlc2V0IHRoZSBiYXNlIHBpdGNoIHdoZW5ldmVyIHdlIGNoYW5nZSB2b2ljZXMs
IHNpbmNlIHRoZSBiYXNlIHBpdGNoIGlzIGRpZmZlcmVudCBmb3IgZWFjaCB2b2ljZS4NCi0gICAg
W21fc3ludGhlc2l6ZXIgc2V0T2JqZWN0Om5pbCBmb3JQcm9wZXJ0eTpOU1NwZWVjaFJlc2V0UHJv
cGVydHkgZXJyb3I6bmlsXTsNCi0gICAgbV9iYXNlUGl0Y2ggPSBbW21fc3ludGhlc2l6ZXIgb2Jq
ZWN0Rm9yUHJvcGVydHk6TlNTcGVlY2hQaXRjaEJhc2VQcm9wZXJ0eSBlcnJvcjpuaWxdIGZsb2F0
VmFsdWVdOw0KLX0NCi0NCi0tICh2b2lkKXNwZWFrVXR0ZXJhbmNlOihXZWJDb3JlOjpQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSAqKXV0dGVyYW5jZQ0KLXsNCi0gICAgLy8gV2hlbiBz
cGVhayBpcyBjYWxsZWQgd2Ugc2hvdWxkIG5vdCBoYXZlIGFuIGV4aXN0aW5nIHNwZWVjaCB1dHRl
cmFuY2Ugb3V0c3RhbmRpbmcuDQotICAgIEFTU0VSVCghbV91dHRlcmFuY2UpOw0KLSAgICBBU1NF
UlQodXR0ZXJhbmNlKTsNCi0NCi0gICAgaWYgKCFtX3N5bnRoZXNpemVyKSB7DQotICAgICAgICBt
X3N5bnRoZXNpemVyID0gYWRvcHROUyhbW05TU3BlZWNoU3ludGhlc2l6ZXIgYWxsb2NdIGluaXRX
aXRoVm9pY2U6bmlsXSk7DQotICAgICAgICBbbV9zeW50aGVzaXplciBzZXREZWxlZ2F0ZTpzZWxm
XTsNCi0gICAgfQ0KLQ0KLSAgICAvLyBGaW5kIGlmIHdlIHNob3VsZCB1c2UgYSBzcGVjaWZpYyB2
b2ljZSBiYXNlZCBvbiB0aGUgdm9pY2VVUkkgaW4gdXR0ZXJhbmNlLg0KLSAgICAvLyBPdGhlcndp
c2UsIGZpbmQgdGhlIHZvaWNlIHRoYXQgbWF0Y2hlcyB0aGUgbGFuZ3VhZ2UuIFRoZSBNYWMgZG9l
c24ndCBoYXZlIGEgZGVmYXVsdCB2b2ljZSBwZXIgbGFuZ3VhZ2UsIHNvIHRoZSBmaXJzdA0KLSAg
ICAvLyBvbmUgd2lsbCBoYXZlIHRvIGRvLg0KLQ0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpc1ZvaWNlKiB1dHRlcmFuY2VWb2ljZSA9IHV0dGVyYW5jZS0+dm9pY2UoKTsNCi0g
ICAgLy8gSWYgbm8gdm9pY2Ugd2FzIHNwZWNpZmllZCwgdHJ5IHRvIG1hdGNoIGJ5IGxhbmd1YWdl
Lg0KLSAgICBpZiAoIXV0dGVyYW5jZVZvaWNlICYmICF1dHRlcmFuY2UtPmxhbmcoKS5pc0VtcHR5
KCkpIHsNCi0gICAgICAgIGZvciAoYXV0byYgdm9pY2UgOiBtX3N5bnRoZXNpemVyT2JqZWN0LT52
b2ljZUxpc3QoKSkgew0KLSAgICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHV0
dGVyYW5jZS0+bGFuZygpLCB2b2ljZS0+bGFuZygpKSkgew0KLSAgICAgICAgICAgICAgICB1dHRl
cmFuY2VWb2ljZSA9IHZvaWNlLmdldCgpOw0KLSAgICAgICAgICAgICAgICBpZiAodm9pY2UtPmlz
RGVmYXVsdCgpKQ0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQotICAgICAgICAgICAgfQ0K
LSAgICAgICAgfQ0KLSAgICB9DQotDQotICAgIE5TU3RyaW5nICp2b2ljZVVSSSA9IG5pbDsNCi0g
ICAgaWYgKHV0dGVyYW5jZVZvaWNlKQ0KLSAgICAgICAgdm9pY2VVUkkgPSB1dHRlcmFuY2VWb2lj
ZS0+dm9pY2VVUkkoKTsNCi0gICAgZWxzZQ0KLSAgICAgICAgdm9pY2VVUkkgPSBbTlNTcGVlY2hT
eW50aGVzaXplciBkZWZhdWx0Vm9pY2VdOw0KLQ0KLSAgICAvLyBEb24ndCBzZXQgdGhlIHZvaWNl
IHVubGVzcyBuZWNlc3NhcnkuIFRoZXJlJ3MgYSBidWcgaW4gTlNTcGVlY2hTeW50aGVzaXplciBz
dWNoIHRoYXQNCi0gICAgLy8gc2V0dGluZyB0aGUgdm9pY2UgZm9yIHRoZSBmaXJzdCB0aW1lIHdp
bGwgY2F1c2UgdGhlIGZpcnN0IHNwZWVjaERvbmUgY2FsbGJhY2sgdG8gcmVwb3J0IGl0IHdhcyB1
bnN1Y2Nlc3NmdWwuDQotICAgIEJPT0wgdXBkYXRlUGl0Y2ggPSBOTzsNCi0gICAgaWYgKCFbW21f
c3ludGhlc2l6ZXIgdm9pY2VdIGlzRXF1YWxUb1N0cmluZzp2b2ljZVVSSV0pIHsNCi0gICAgICAg
IFttX3N5bnRoZXNpemVyIHNldFZvaWNlOnZvaWNlVVJJXTsNCi0gICAgICAgIC8vIFJlc2V0IHRo
ZSBiYXNlIHBpdGNoIHdoZW5ldmVyIHdlIGNoYW5nZSB2b2ljZXMuDQotICAgICAgICB1cGRhdGVQ
aXRjaCA9IFlFUzsNCi0gICAgfQ0KLQ0KLSAgICBpZiAobV9iYXNlUGl0Y2ggPT0gMCB8fCB1cGRh
dGVQaXRjaCkNCi0gICAgICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZvclN5bnRoZXNpemVyXTsN
Ci0NCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoRmxv
YXQ6W3NlbGYgY29udmVydFBpdGNoVG9OU1NwZWVjaFZhbHVlOnV0dGVyYW5jZS0+cGl0Y2goKV1d
IGZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hCYXNlUHJvcGVydHkgZXJyb3I6bmlsXTsNCi0gICAg
W21fc3ludGhlc2l6ZXIgc2V0UmF0ZTpbc2VsZiBjb252ZXJ0UmF0ZVRvV1BNOnV0dGVyYW5jZS0+
cmF0ZSgpXV07DQotICAgIFttX3N5bnRoZXNpemVyIHNldFZvbHVtZTp1dHRlcmFuY2UtPnZvbHVt
ZSgpXTsNCi0NCi0gICAgbV91dHRlcmFuY2UgPSB1dHRlcmFuY2U7DQotICAgIFttX3N5bnRoZXNp
emVyIHN0YXJ0U3BlYWtpbmdTdHJpbmc6dXR0ZXJhbmNlLT50ZXh0KCldOw0KLSAgICBtX3N5bnRo
ZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkU3RhcnRTcGVha2luZygqbV91dHRlcmFuY2UpOw0K
LX0NCi0NCi0tICh2b2lkKXBhdXNlDQotew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAg
ICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBwYXVzZVNwZWFraW5nQXRCb3VuZGFy
eTpOU1NwZWVjaEltbWVkaWF0ZUJvdW5kYXJ5XTsNCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+
Y2xpZW50KCktPmRpZFBhdXNlU3BlYWtpbmcoKm1fdXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9p
ZClyZXN1bWUNCi17DQotICAgIGlmICghbV91dHRlcmFuY2UpDQotICAgICAgICByZXR1cm47DQot
DQotICAgIFttX3N5bnRoZXNpemVyIGNvbnRpbnVlU3BlYWtpbmddOw0KLSAgICBtX3N5bnRoZXNp
emVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkUmVzdW1lU3BlYWtpbmcoKm1fdXR0ZXJhbmNlKTsNCi19
DQotDQotLSAodm9pZCljYW5jZWwNCi17DQotICAgIGlmICghbV91dHRlcmFuY2UpDQotICAgICAg
ICByZXR1cm47DQotDQotICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVha2luZ0F0Qm91bmRhcnk6
TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNs
aWVudCgpLT5zcGVha2luZ0Vycm9yT2NjdXJyZWQoKm1fdXR0ZXJhbmNlKTsNCi0gICAgbV91dHRl
cmFuY2UgPSAwOw0KLX0NCi0NCi0tICh2b2lkKWludmFsaWRhdGUNCi17DQotICAgIG1fdXR0ZXJh
bmNlID0gMDsNCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0RGVsZWdhdGU6bmlsXTsNCi0gICAgW21f
c3ludGhlc2l6ZXIgc3RvcFNwZWFraW5nQXRCb3VuZGFyeTpOU1NwZWVjaEltbWVkaWF0ZUJvdW5k
YXJ5XTsNCi19DQotDQotLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooTlNTcGVlY2hTeW50aGVz
aXplciAqKXNlbmRlciBkaWRGaW5pc2hTcGVha2luZzooQk9PTClmaW5pc2hlZFNwZWFraW5nDQot
ew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBVTlVT
RURfUEFSQU0oc2VuZGVyKTsNCi0NCi0gICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlh
YmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2Ig
aW1tZWRpYXRlbHkuDQotICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlKiB1dHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsNCi0gICAgbV91dHRlcmFuY2UgPSAwOw0KLQ0K
LSAgICBpZiAoZmluaXNoZWRTcGVha2luZykNCi0gICAgICAgIG1fc3ludGhlc2l6ZXJPYmplY3Qt
PmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqdXR0ZXJhbmNlKTsNCi0gICAgZWxzZQ0KLSAg
ICAgICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPnNwZWFraW5nRXJyb3JPY2N1cnJl
ZCgqdXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooTlNTcGVl
Y2hTeW50aGVzaXplciAqKXNlbmRlciB3aWxsU3BlYWtXb3JkOihOU1JhbmdlKWNoYXJhY3RlclJh
bmdlIG9mU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZw0KLXsNCi0gICAgVU5VU0VEX1BBUkFNKHNl
bmRlcik7DQotICAgIFVOVVNFRF9QQVJBTShzdHJpbmcpOw0KLQ0KLSAgICBpZiAoIW1fdXR0ZXJh
bmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICAvLyBNYWMgcGxhdGZvcm0gb25seSBzdXBw
b3J0cyB3b3JkIGJvdW5kYXJpZXMuDQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgp
LT5ib3VuZGFyeUV2ZW50T2NjdXJyZWQoKm1fdXR0ZXJhbmNlLCBXZWJDb3JlOjpTcGVlY2hCb3Vu
ZGFyeTo6U3BlZWNoV29yZEJvdW5kYXJ5LCBjaGFyYWN0ZXJSYW5nZS5sb2NhdGlvbik7DQotfQ0K
LQ0KLUBlbmQNCi0NCi1uYW1lc3BhY2UgV2ViQ29yZSB7DQotDQotUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcihQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyQ2xpZW50KiBjbGllbnQpDQotICAgIDogbV9zcGVlY2hTeW50aGVzaXplckNsaWVudChjbGll
bnQpDQotew0KLX0NCi0NCi1QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjp+UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcigpDQotew0KLSAgICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgaW52YWxp
ZGF0ZV07DQotfQ0KLQ0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gc3BlZWNoU3ludGhl
c2lzR2V0Vm9pY2VJZGVudGlmaWVycygpDQotew0KLSAgICAvLyBHZXQgYWxsIHRoZSB2b2ljZXMg
b2ZmZXJlZCBieSBUVFMuDQotICAgIC8vIEJ5IGRlZmF1bHQgc3BlZWNoIG9ubHkgcmV0dXJucyAi
cHJlbWl1bSIgdm9pY2VzLCB3aGljaCBkb2VzIG5vdCBpbmNsdWRlIGFsbCB0aGUNCi0gICAgLy8g
aW50ZXJuYXRpb25hbCB2b2ljZXMuIFRoaXMgYWxsb3dzIHVzIHRvIG9mZmVyIHNwZWVjaCBzeW50
aGVzaXMgZm9yIGFsbCBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLg0KLSAgICByZXR1cm4gYWRvcHRDRihD
b3B5U3BlZWNoU3ludGhlc2lzVm9pY2VzRm9yTW9kZSgoX19icmlkZ2UgQ0ZBcnJheVJlZilAWyBA
IlZvaWNlR3JvdXBEZWZhdWx0IiwgQCJWb2ljZUdyb3VwQ29tcGFjdCIgXSkpOw0KLX0NCi0NCi1z
dGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzcGVlY2hTeW50aGVzaXNHZXREZWZhdWx0Vm9p
Y2VJZGVudGlmaWVyRm9yTG9jYWxlKE5TTG9jYWxlICp1c2VyTG9jYWxlKQ0KLXsNCi0gICAgaWYg
KCF1c2VyTG9jYWxlKQ0KLSAgICAgICAgcmV0dXJuIG5pbDsNCi0NCi0jaWYgSEFWRShTUEVFQ0hT
WU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLSAgICByZXR1cm4gYWRvcHRDRihDb3B5SWRlbnRpZmll
clN0cmluZ0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShzcGVlY2hTeW50aGVzaXNH
ZXRWb2ljZUlkZW50aWZpZXJzKCkuZ2V0KCksIChfX2JyaWRnZSBDRkxvY2FsZVJlZil1c2VyTG9j
YWxlKSk7DQotI2Vsc2UNCi0gICAgcmV0dXJuIEdldElkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJy
ZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoc3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVy
cygpLmdldCgpLCAoX19icmlkZ2UgQ0ZMb2NhbGVSZWYpdXNlckxvY2FsZSk7DQotI2VuZGlmDQot
fQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6aW5pdGlhbGl6ZVZvaWNlTGlz
dCgpDQotew0KLSAgICBhdXRvIGF2YWlsYWJsZVZvaWNlcyA9IHNwZWVjaFN5bnRoZXNpc0dldFZv
aWNlSWRlbnRpZmllcnMoKTsNCi0gICAgTlNVSW50ZWdlciBjb3VudCA9IFsoX19icmlkZ2UgTlNB
cnJheSAqKWF2YWlsYWJsZVZvaWNlcy5nZXQoKSBjb3VudF07DQotICAgIGZvciAoTlNVSW50ZWdl
ciBrID0gMDsgayA8IGNvdW50OyBrKyspIHsNCi0gICAgICAgIE5TU3RyaW5nICp2b2ljZU5hbWUg
PSBbKF9fYnJpZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0KCkgb2JqZWN0QXRJbmRl
eDprXTsNCi0gICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9IFtOU1NwZWVjaFN5bnRo
ZXNpemVyIGF0dHJpYnV0ZXNGb3JWb2ljZTp2b2ljZU5hbWVdOw0KLQ0KLSAgICAgICAgTlNTdHJp
bmcgKnZvaWNlVVJJID0gW2F0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TVm9pY2VJZGVudGlmaWVy
XTsNCi0gICAgICAgIE5TU3RyaW5nICpuYW1lID0gW2F0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5T
Vm9pY2VOYW1lXTsNCi0gICAgICAgIE5TU3RyaW5nICpsYW5ndWFnZSA9IFthdHRyaWJ1dGVzIG9i
amVjdEZvcktleTpOU1ZvaWNlTG9jYWxlSWRlbnRpZmllcl07DQotICAgICAgICBhdXRvIGRlZmF1
bHRWb2ljZVVSSSA9IHNwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JM
b2NhbGUoYWRvcHROUyhbW05TTG9jYWxlIGFsbG9jXSBpbml0V2l0aExvY2FsZUlkZW50aWZpZXI6
bGFuZ3VhZ2VdKS5nZXQoKSk7DQotDQotICAgICAgICAvLyBDaGFuZ2UgdG8gQkNQLTQ3IGZvcm1h
dCBhcyBkZWZpbmVkIGJ5IHNwZWMuDQotICAgICAgICBsYW5ndWFnZSA9IFtsYW5ndWFnZSBzdHJp
bmdCeVJlcGxhY2luZ09jY3VycmVuY2VzT2ZTdHJpbmc6QCJfIiB3aXRoU3RyaW5nOkAiLSJdOw0K
LQ0KLSAgICAgICAgYm9vbCBpc0RlZmF1bHQgPSBbKF9fYnJpZGdlIE5TU3RyaW5nICopZGVmYXVs
dFZvaWNlVVJJLmdldCgpIGlzRXF1YWxUb1N0cmluZzp2b2ljZVVSSV07DQotDQotICAgICAgICBt
X3ZvaWNlTGlzdC5hcHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRlKHZv
aWNlVVJJLCBuYW1lLCBsYW5ndWFnZSwgdHJ1ZSwgaXNEZWZhdWx0KSk7DQotICAgIH0NCi19DQot
DQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpwYXVzZSgpDQotew0KLSAgICBbbV9w
bGF0Zm9ybVNwZWVjaFdyYXBwZXIgcGF1c2VdOw0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXI6OnJlc3VtZSgpDQotew0KLSAgICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIg
cmVzdW1lXTsNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpzcGVhayhS
ZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+JiYgdXR0ZXJhbmNlKQ0KLXsN
Ci0gICAgaWYgKCFtX3BsYXRmb3JtU3BlZWNoV3JhcHBlcikNCi0gICAgICAgIG1fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyID0gYWRvcHROUyhbW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgYWxsb2Nd
IGluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6dGhpc10pOw0KLQ0KLSAgICBbbV9wbGF0Zm9ybVNw
ZWVjaFdyYXBwZXIgc3BlYWtVdHRlcmFuY2U6dXR0ZXJhbmNlLmdldCgpXTsNCi19DQotDQotdm9p
ZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5jZWwoKQ0KLXsNCi0gICAgW21fcGxhdGZv
cm1TcGVlY2hXcmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6cmVzZXRTdGF0ZSgpDQotew0KLSAgICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIg
Y2FuY2VsXTsNCi19DQotDQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KLQ0KLSNlbmRpZiAvLyBF
TkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oTUFDKQ0K
</data>
<flag name="review"
          id="465925"
          type_id="1"
          status="+"
          setter="andresg_22"
    />
    <flag name="commit-queue"
          id="465923"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441881</attachid>
            <date>2021-10-20 08:22:32 -0700</date>
            <delta_ts>2021-10-20 19:43:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>36138</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cN
CmluZGV4IDBkN2I2ZDU0ZDRlZS4uMmU5MmMyMTcwNzEwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEzIEBA
DQorMjAyMS0xMC0yMCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0K
KyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3Ig
TWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kcmVzIEdvbnphbGVzLg0KKw0KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1I
YXZlLmg6DQorDQogMjAyMS0xMC0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+DQogDQogICAgICAgICBbR0xJQl0gU2ltcGxpZnkgU2xlZXBEaXNhYmxlciBieSBj
aGVja2luZyBpZiB3ZSBhcmUgdW5kZXIgc2FuZGJveA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCmluZGV4
IDkwMDdlNmU2ZTdhZS4uZjMyZGFjYTZlMWZjIDEwMDY0NA0KLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgNCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oDQpAQCAt
NzU5LDcgKzc1OSw3IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIChQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTQwMzAwDQorI2lmICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDMwMCkgfHwg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAw
MDApDQogI2lmICFkZWZpbmVkKEhBVkVfQVZTUEVFQ0hTWU5USEVTSVNfU1lTVEVNVk9JQ0UpDQog
I2RlZmluZSBIQVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNFIDENCiAjZW5kaWYNCkBA
IC03NzEsMTIgKzc3MSw2IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDANCi0jaWYgIWRl
ZmluZWQoSEFWRV9TUEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLSNkZWZpbmUgSEFWRV9T
UEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJIDENCi0jZW5kaWYNCi0jZW5kaWYNCi0NCiAjaWYg
Q09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIGRlZmluZWQoX19oYXNfYXR0cmlidXRlKQ0KICNp
ZiBfX2hhc19hdHRyaWJ1dGUob2JqY19kaXJlY3QpICYmICghUExBVEZPUk0oTUFDKSB8fCBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkNCiAjaWYgIWRlZmluZWQoSEFW
RV9OU19ESVJFQ1RfU1VQUE9SVCkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCmluZGV4IDdmZDdiMDFjYzNiYi4uMjUwZGE4
ZWE5ZmQwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsNDAgQEANCisyMDIxLTEwLTE4ICBDaHJp
cyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQorICAgICAgICBBWDogVW5pZnkg
c3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdlIGZvciBNYWMvaU9TDQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODk1DQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBBbmRyZXMg
R29uemFsZXMuDQorDQorICAgICAgICBBVlNwZWVjaFN5bnRoZXNpemVyIGhhcyBiZWVuIGZ1bGx5
IHN1cHBvcnRlZCBvbiBtYWNPUyBmb3IgYSBudW1iZXIgb2YgeWVhcnMuIFRoaXMgYWxsb3dzIHVz
IHRvIHVuaWZ5IHBsYXRmb3JtIHVzYWdlLg0KKw0KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
Og0KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6DQorICAgICAg
ICAqIHBsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbTogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVySU9TLm1tLg0KKyAgICAgICAgKGdldEFWU3BlZWNoVXR0ZXJhbmNlRGVmYXVsdFNwZWVj
aFJhdGUpOg0KKyAgICAgICAgKGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUp
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBpbml0V2l0aFNwZWVjaFN5
bnRoZXNpemVyOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBtYXBT
cGVlY2hSYXRlVG9QbGF0Zm9ybVJhdGU6XSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVz
aXNXcmFwcGVyIHNwZWFrVXR0ZXJhbmNlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhl
c2lzV3JhcHBlciBwYXVzZV0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBl
ciByZXN1bWVdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgY2FuY2Vs
XSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIHNwZWVjaFN5bnRoZXNp
emVyOmRpZFN0YXJ0U3BlZWNoVXR0ZXJhbmNlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3lu
dGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXplcjpkaWRGaW5pc2hTcGVlY2hVdHRlcmFuY2U6
XSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIHNwZWVjaFN5bnRoZXNp
emVyOmRpZFBhdXNlU3BlZWNoVXR0ZXJhbmNlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3lu
dGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXplcjpkaWRDb250aW51ZVNwZWVjaFV0dGVyYW5j
ZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhl
c2l6ZXI6ZGlkQ2FuY2VsU3BlZWNoVXR0ZXJhbmNlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNo
U3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXplcjp3aWxsU3BlYWtSYW5nZU9mU3BlZWNo
U3RyaW5nOnV0dGVyYW5jZTpdKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKToNCisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjp+UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcik6
DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6aW5pdGlhbGl6
ZVZvaWNlTGlzdCk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cjo6cGF1c2UpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6
OnJlc3VtZSk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6
c3BlYWspOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmNh
bmNlbCk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cmVz
ZXRTdGF0ZSk6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTWFjLm1tOiBSZW1vdmVkLg0KKw0KIDIwMjEtMTAtMTggIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIENvY29hIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHNob3VsZCBub3QgdXNlIFdlYkdMTGF5ZXINCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KaW5kZXggMzYy
OGNkMzZkNGIxLi4wN2NjOTBkY2U2MjAgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQpAQCAtMSwzICsx
LDE3IEBADQorMjAyMS0xMC0xOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
Pg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2Fn
ZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVzIEdvbnphbGVzLg0KKw0KKyAgICAgICAgKiBQQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoNCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLmg6DQorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5t
bToNCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BWFNwZWVjaE1hbmFnZXJTUEkuaDoNCisgICAg
ICAgICogcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmg6IFJlbW92ZWQuDQorDQogMjAy
MS0xMC0xOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPg0KIA0KICAgICAgICAg
QnVnIDIzMTg4MjogV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRUQ0NJZGVu
dGl0eSgpIGxlYWtzIGEgdGNjX2lkZW50aXR5X3QNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oNCmluZGV4IGM2ZGE2MDA1ZDBiOC4uMGNhMzNl
ZGQ2ZWI0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oNCkBAIC0xNjksNyArMTY5LDYgQEANCiAJCUExMDgyNkY5MUY1NzYyOTIwMDQ3
NzJBQyAvKiBXZWJQYW5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTEwODI2RjcxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLmggKi87IH07DQog
CQlBMTA4MjZGQTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA4MjZGODFGNTc2MjkyMDA0NzcyQUMg
LyogV2ViUGFuZWwubW0gKi87IH07DQogCQlBMTA4MjZGRTFGNThBNDMzMDA0NzcyQUMgLyogTlNH
cmFwaGljc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwODI2RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLzsgfTsNCi0J
CUExMTc1QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjQ4MUY2QUZGOEUw
MEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCAqLzsgfTsNCiAJCUExMTc1QjRCMUY2QjJE
N0UwMEM0QjlGMCAvKiBOU0NlbGxTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExMTc1QjRBMUY2QjJEN0UwMEM0QjlGMCAvKiBOU0NlbGxTUEkuaCAq
LzsgfTsNCiAJCUExMTc1QjRFMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLzsgfTsNCiAJCUExMTc1QjRGMUY2QjMzNzMwMEM0QjlG
MCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovOyB9Ow0K
QEAgLTM5Niw3ICszOTUsNiBAQA0KIAkJQTEwODI2RjcxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBh
bmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07DQogCQlBMTA4MjZGODFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJQYW5lbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJ
CUExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5TR3JhcGhpY3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCi0JCUExMTc1
QjQ4MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoU3ludGhlc2lzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlB
MTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5T
Q2VsbFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTExNzVCNEMxRjZCMzM3
MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQ
b3B1cE1lbnUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQb3B1cE1lbnUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07DQpAQCAtNjQzLDcgKzY0MSw2IEBADQogCQkJCTBDNzc4NTg0MUY0
NTEzMEYwMEY0RUJCNiAvKiBOU1dpbmRvd1NQSS5oICovLA0KIAkJCQkwQzc3ODU4NTFGNDUxMzBG
MDBGNEVCQjYgLyogUElQU1BJLmggKi8sDQogCQkJCTBDNzc4NTg3MUY0NTEzMEYwMEY0RUJCNiAv
KiBRdWlja0xvb2tNYWNTUEkuaCAqLywNCi0JCQkJQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYwIC8q
IFNwZWVjaFN5bnRoZXNpc1NQSS5oICovLA0KIAkJCQk3MUIxMTQxRjI2ODIzQUNEMDA0RDY3MDEg
LyogU3lzdGVtUHJldmlld1NQSS5oICovLA0KIAkJCQkwQzc3ODU4ODFGNDUxMzBGMDBGNEVCQjYg
LyogVGVsZXBob255VXRpbGl0aWVzU1BJLmggKi8sDQogCQkJKTsNCkBAIC0xMDEyLDcgKzEwMDks
NiBAQA0KIAkJCQlBMzc4OEU5ODFGMDVCNkNFMDA2Nzk0MjUgLyogU291bmQuaCBpbiBIZWFkZXJz
ICovLA0KIAkJCQk5M0IzOEVCRTI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCBp
biBIZWFkZXJzICovLA0KIAkJCQk5M0IzOEVDMjI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJ
LmggaW4gSGVhZGVycyAqLywNCi0JCQkJQTExNzVCNDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVj
aFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTBDNUFGOTIxMUY0M0E0QzcwMDJF
QUMwMiAvKiBTUUxpdGUzU1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJNzFCMTE0MjAyNjgyM0FD
RDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkzMTMw
OEIxNDIwQTIxNzA1MDAzRkI5MjkgLyogU3lzdGVtUHJldmlld1NQSS5oIGluIEhlYWRlcnMgKi8s
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5oDQppbmRleCA5ZGI5YWY4ZjdlYzEuLmE3MzcwOTc3YmRjOCAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oDQpAQCAt
NzYsNiArNzYsOSBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3RyZWFtU2Vz
c2lvbikNCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hF
QURFUihQQUwsIEFWQXVkaW9TZXNzaW9uKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBB
TCwgQVZQZXJzaXN0YWJsZUNvbnRlbnRLZXlSZXF1ZXN0KQ0KKyNlbmRpZg0KKw0KKyNpZiBQTEFU
Rk9STShDT0NPQSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoU3lu
dGhlc2lzVm9pY2UpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFN5
bnRoZXNpemVyKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hVdHRl
cmFuY2UpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW0NCmluZGV4IGQyMWQ0OWNkNzcwMi4uYmQ2ZWJiY2I5OTEzIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5t
bQ0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5tbQ0KQEAgLTEwMiw2ICsxMDIsOSBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uLCBQQUxfRQ0KICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbiwgUEFMX0VYUE9SVCkNCiBTT0ZU
X0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZQ
ZXJzaXN0YWJsZUNvbnRlbnRLZXlSZXF1ZXN0LCBQQUxfRVhQT1JUKQ0KKyNlbmRpZg0KKw0KKyNp
ZiBQTEFURk9STShDT0NPQSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hTeW50aGVzaXNWb2ljZSwgUEFMX0VYUE9SVCkN
CiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlv
biwgQVZTcGVlY2hTeW50aGVzaXplciwgUEFMX0VYUE9SVCkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hVdHRlcmFuY2Us
IFBBTF9FWFBPUlQpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9BWFNwZWVjaE1hbmFnZXJTUEkuaA0KaW5kZXggZmVjZjEwY2VhM2JmLi4wNDY4YmE5MWJhNTMg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BWFNwZWVjaE1h
bmFnZXJTUEkuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVl
Y2hNYW5hZ2VyU1BJLmgNCkBAIC0yNSw3ICsyNSw3IEBADQogDQogI3ByYWdtYSBvbmNlDQogDQot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIFBMQVRGT1JNKENPQ09BKQ0KIA0KIC8vIEZJ
WE1FOiBVbmRvIHdoZW4gaXNTeXN0ZW1Wb2ljZSBpcyBhdmFpbGFibGUgaW4gYWxsIFNES3MuDQog
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIDANCkBAIC00Miw1ICs0Miw1IEBADQogDQog
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspDQogDQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpDQorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQ0KIA0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCBiOTI5NzgyYmViMGMuLjAwMDAwMDAwMDAwMA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oDQor
KysgL2Rldi9udWxsDQpAQCAtMSw0MyArMCwwIEBADQotLyoNCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQNCi0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMNCi0gKiBhcmUgbWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Lg0KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
DQotICoNCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnDQotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sDQotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUg0KLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUw0KLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1INCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRg0KLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUw0KLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElODQotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkNCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GDQotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLg0KLSAqLw0KLQ0KLSNwcmFnbWEgb25jZQ0KLQ0KLSNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQ0KLQ0KLSNpbmNsdWRlIDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2Vy
dmljZXNQcml2Lmg+DQotDQotI2VuZGlmDQotDQotV1RGX0VYVEVSTl9DX0JFR0lODQotDQotQ0ZB
cnJheVJlZiBDb3B5U3BlZWNoU3ludGhlc2lzVm9pY2VzRm9yTW9kZShDRlR5cGVSZWYgbW9kZSk7
DQotI2lmIEhBVkUoU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi1DRlN0cmluZ1JlZiBD
b3B5SWRlbnRpZmllclN0cmluZ0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShDRkFy
cmF5UmVmIHZvaWNlcywgQ0ZMb2NhbGVSZWYpOw0KLSNlbHNlDQotQ0ZTdHJpbmdSZWYgR2V0SWRl
bnRpZmllclN0cmluZ0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShDRkFycmF5UmVm
IHZvaWNlcywgQ0ZMb2NhbGVSZWYpOw0KLSNlbmRpZg0KLQ0KLVdURl9FWFRFUk5fQ19FTkQNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dA0KaW5kZXggZjYzNDUzMmUxN2MwLi5hMzRmMjJhODc2NmUgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0DQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0DQpAQCAtMjU1LDYgKzI1NSw3IEBAIHBsYXRmb3JtL2Nv
Y29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tDQogcGxhdGZvcm0vY29jb2EvUGFz
dGVib2FyZENvY29hLm1tDQogcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2Nv
YS5tbQ0KIHBsYXRmb3JtL2NvY29hL1BsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tDQorcGxhdGZv
cm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIEBuby11bmlmeQ0KIHBs
YXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tDQogcGxhdGZv
cm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQ0KIHBsYXRmb3JtL2NvY29hL1JlbW90ZUNv
bW1hbmRMaXN0ZW5lckNvY29hLm1tDQpAQCAtNDM4LDcgKzQzOSw2IEBAIHBsYXRmb3JtL2lvcy9Q
YXN0ZWJvYXJkSU9TLm1tDQogcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1t
IEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0NCiBwbGF0
Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0NCi1wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcklPUy5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlQVZLaXQubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1ByZXZpZXdDb252
ZXJ0ZXJJT1MubW0NCiBwbGF0Zm9ybS9pb3MvUXVpY2tMb29rLm1tDQpAQCAtNDg1LDcgKzQ4NSw2
IEBAIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkV3JpdGVyLm1tDQogcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLm1tDQogcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1h
Yy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQ0KLXBsYXRmb3JtL21hYy9Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tDQogcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYy5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9tYWMvUGx1Z2luQmxvY2ts
aXN0Lm1tDQogcGxhdGZvcm0vbWFjL1Bvd2VyT2JzZXJ2ZXJNYWMuY3BwDQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQppbmRleCAyMWNiNzNk
ZTdkODYuLjI0NjhmYTc0MWY3NSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQpAQCAtMzcyMSw3ICszNzIxLDcgQEANCiAJCUE5RDI0
ODAxMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDdGRDBENzU3RTY5MDBGREY5NTkg
LyogSlNET01QbHVnaW5BcnJheS5oICovOyB9Ow0KIAkJQTlEMjQ4MDcwRDc1N0U3RDAwRkRGOTU5
IC8qIEpTRE9NTWltZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE5RDI0ODAzMEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggKi87
IH07DQogCQlBOUQyNDgwOTBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwNTBE
NzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZUFycmF5LmggKi87IH07DQotCQlBQTEyREY0
OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRTM3NTVEMTc0MjlC
Q0MwMDYyMDBDMiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tICovOyB9Ow0KKwkJ
QUExMkRGNDkxNzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRTM3
NTVEMTc0MjlCQ0MwMDYyMDBDMiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0g
Ki87IH07DQogCQlBQTIxRUNDRDBBQkYwRkM2MDAyQjgzNEMgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEwOTc4
RUUwQUJBQTZFMTAwODc0NDgwIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Ow0KIAkJQUEyQTVBQ0UxNkE0ODVGRDAw
OTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDNzE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzVm9pY2UuaCAqLzsgfTsNCiAJCUFBMkE1QUQwMTZBNDg2MDQwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBMkE1QUM1MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UuaCAqLzsgfTsNCkBAIC03MzI2LDcgKzczMjYsNiBAQA0KIAkJMjlEN0JDRjkx
NDQ0QUY3RDAwNzA2MTlDIC8qIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlTcGluQnV0dG9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyOUUwNEEyN0JFRDJGODFGOThFOTAyMkIgLyogSlNCZWZv
cmVVbmxvYWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JlZm9y
ZVVubG9hZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyOUU0RDhERjE2
QjA5NDBGMDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07DQotCQkyOUU0RDhFMDE2QjA5NTk4MDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQog
CQkyOUZBRjRCNTE5NUFCMDg5MDBBNTIyREMgLyogVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFVuZG9JbnNlcnRpb25NYXJr
dXBNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTJBNDEwN0EwMjZDQjY2RUQw
MDNCRjc5NyAvKiBDU1NLZXl3b3JkVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTS2V5
d29yZFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTJBNDEwN0EyMjZD
QjY2RUQwMDNCRjc5NyAvKiBDU1NLZXl3b3JkVmFsdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU0tleXdvcmRWYWx1
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQpAQCAtMTM2NDcsNyArMTM2NDYsNyBA
QA0KIAkJQUFERUZFNDMyNUFGNEZDQjAwNDBERDY3IC8qIEZvY3VzT3B0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGb2N1c09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFB
RTI3Qjc0MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUUyN0I3
NTE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCi0JCUFBRTM3NTVEMTc0MjlCQ0MwMDYy
MDBDMiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCisJCUFBRTM3NTVEMTc0MjlCQ0MwMDYyMDBDMiAv
KiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUY1QjdCMTE1MjRCNEJEMDAwNENCNDkgLyog
V2ViU29ja2V0RnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViU29ja2V0RnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUIyM0Ez
MjUwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQjIzQTMyNjA5QkJBN0QwMDA2N0ND
NTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07DQpAQCAtMjI0MTMsNyArMjI0MTIsNiBAQA0KIAkJCQlCQ0FBNDg2RDE0QTA1MjUzMDA4
OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gKi8sDQogCQkJCUM1Rjc2NUJBMTRF
MUVDRjQwMDZDODk5QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0gKi8sDQogCQkJCUJDOTRE
MTA3MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVlbk1hYy5tbSAqLywNCi0JCQkJMjlF
NEQ4RTAxNkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0g
Ki8sDQogCQkJCUNEQTI5QTE1MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWMuaCAqLywNCiAJCQkJQ0RBMjlBMTQxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZU1hYy5tbSAqLywNCiAJCQkJMUFGRkM0NEYxRDVFN0VDNzAwMjY3QTY2
IC8qIFBsdWdpbkJsb2NrbGlzdC5oICovLA0KQEAgLTI1MDgyLDcgKzI1MDgwLDYgQEANCiAJCQkJ
MjY2MDFFQkUxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tICov
LA0KIAkJCQlDNTI3OEIwQjE3RjIxMkVBMDAzQTI5OTggLyogUGxhdGZvcm1QYXN0ZWJvYXJkSU9T
Lm1tICovLA0KIAkJCQlFNDUzOTAzMjBFQUZENjM3MDAzNjk1QzggLyogUGxhdGZvcm1TY3JlZW5J
T1MubW0gKi8sDQotCQkJCUFBRTM3NTVEMTc0MjlCQ0MwMDYyMDBDMiAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVySU9TLm1tICovLA0KIAkJCQlDREEyOUEyRTFDQkY3M0ZDMDA5MDFDQ0YgLyog
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQuaCAqLywNCiAJCQkJQ0RBMjlBMkYxQ0JGNzNG
QzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tICovLA0KIAkJCQlB
MUMxNTA3NzFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlcklPUy5tbSAqLywNCkBA
IC0yNTI0MSw2ICsyNTIzOCw3IEBADQogCQkJCTlCRUQyQ0FGMUY3Q0MwNjIwMDY2NjAxOCAvKiBQ
YXN0ZWJvYXJkQ29jb2EubW0gKi8sDQogCQkJCUY0RkIzNTAwMjM1MEM5NjIwMEYwMDk0QSAvKiBQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tICovLA0KIAkJCQlGNDYyOEE5RTIzNEQzQkJGMDBC
Qzg4NEMgLyogUGxhdGZvcm1QYXN0ZWJvYXJkQ29jb2EubW0gKi8sDQorCQkJCUFBRTM3NTVEMTc0
MjlCQ0MwMDYyMDBDMiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0gKi8sDQog
CQkJCTUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLywNCiAJCQkJ
Q0RBMjlBMEExQ0JEOUE3NDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsLmggKi8sDQog
CQkJCUNEQTI5QTBEMUNCRDlDRkUwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudC5oICovLA0KQEAgLTM2OTUyLDcgKzM2OTUwLDcgQEANCiAJCQkJMUE1NjlEMUEwRDdF
MkI4MjAwN0MzOTgzIC8qIG9iamNfdXRpbGl0eS5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlFMTY5
ODI2MDExMzQ2MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gaW4gU291cmNlcyAq
LywNCiAJCQkJQ0VBMjg0NjYyMTQxRTg0OTAwRTQwN0U4IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tIGluIFNvdXJjZXMgKi8sDQotCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sDQorCQkJCUFBMTJE
RjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0g
aW4gU291cmNlcyAqLywNCiAJCQkJQ0RBMjlBMzAxQ0JGNzRENDAwOTAxQ0NGIC8qIFBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sDQogCQkJCUNEQTI5QTE2MUNC
REE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gaW4gU291cmNl
cyAqLywNCiAJCQkJNDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2Eu
bW0NCnNpbWlsYXJpdHkgaW5kZXggOTIlDQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQ0KcmVuYW1lIHRvIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5t
bQ0KaW5kZXggNTg1ODI0NDZiYjQ2Li5iMDg2YjgxY2Q3MzQgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQ0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ckNvY29hLm1tDQpAQCAtMjUsMTEgKzI1LDE3IEBADQogI2ltcG9ydCAiY29uZmlnLmgiDQogI2lt
cG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIg0KIA0KLSNpZiBFTkFCTEUoU1BFRUNI
X1NZTlRIRVNJUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCisjaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpICYmIFBMQVRGT1JNKENPQ09BKQ0KIA0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmgiDQogI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNW
b2ljZS5oIg0KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlNwZWVjaFN5bnRoZXNpcy5oPg0KKw0K
KyNpZiBfX2hhc19pbmNsdWRlKDxBVkZBdWRpby9BVlNwZWVjaFN5bnRoZXNpcy5oPikNCisjaW1w
b3J0IDxBVkZBdWRpby9BVlNwZWVjaFN5bnRoZXNpcy5oPg0KKyNlbHNlDQorI2ltcG9ydCA8QVZG
b3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPg0KKyNlbmRpZg0KKw0KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmg+DQogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4NCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+DQpAQCAtNjMsOCArNjksNyBAQCBz
dGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogI2Rl
ZmluZSBBVlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hSYXRlIGdldEFWU3BlZWNoVXR0ZXJh
bmNlRGVmYXVsdFNwZWVjaFJhdGUoKQ0KICNkZWZpbmUgQVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVt
U3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiANCi1A
aW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgOiBOU09iamVjdDxBVlNwZWVjaFN5
bnRoZXNpemVyRGVsZWdhdGU+DQotew0KK0BpbnRlcmZhY2UgV2ViU3BlZWNoU3ludGhlc2lzV3Jh
cHBlciA6IE5TT2JqZWN0PEFWU3BlZWNoU3ludGhlc2l6ZXJEZWxlZ2F0ZT4gew0KICAgICBXZWJD
b3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KICAg
ICAvLyBIb2xkIGEgUmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBl
YXIgdW50aWwgdGhlIHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCiAgICAgUmVmUHRyPFdlYkNvcmU6
OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBtX3V0dGVyYW5jZTsNCkBAIC0xOTEs
MTAgKzE5NiwxMCBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3Bl
ZWNoUmF0ZSgpDQogICAgICAgICByZXR1cm47DQogDQogICAgIC8vIENsZWFyIHRoZSBtX3V0dGVy
YW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcgc3Bl
YWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQor
ICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJv
dGVjdGVkVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQogICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0
cjsNCiANCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFr
aW5nKCpwbGF0Zm9ybVV0dGVyYW5jZSk7DQorICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVu
dCgpLT5kaWRGaW5pc2hTcGVha2luZygqcHJvdGVjdGVkVXR0ZXJhbmNlKTsNCiB9DQogDQogLSAo
dm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVy
IGRpZFBhdXNlU3BlZWNoVXR0ZXJhbmNlOihBVlNwZWVjaFV0dGVyYW5jZSAqKXV0dGVyYW5jZQ0K
QEAgLTIyNSwxMCArMjMwLDEwIEBAIHN0YXRpYyBmbG9hdCBnZXRBVlNwZWVjaFV0dGVyYW5jZU1h
eGltdW1TcGVlY2hSYXRlKCkNCiAgICAgICAgIHJldHVybjsNCiANCiAgICAgLy8gQ2xlYXIgdGhl
IG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBh
IG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRlbHkuDQotICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcGxhdGZvcm1VdHRlcmFuY2UgPSBtX3V0dGVy
YW5jZTsNCisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlPiBwcm90ZWN0ZWRVdHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsNCiAgICAgbV91dHRlcmFuY2Ug
PSBudWxscHRyOw0KIA0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmlu
aXNoU3BlYWtpbmcoKnBsYXRmb3JtVXR0ZXJhbmNlKTsNCisgICAgbV9zeW50aGVzaXplck9iamVj
dC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCpwcm90ZWN0ZWRVdHRlcmFuY2UpOw0KIH0N
CiANCiAtICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihBVlNwZWVjaFN5bnRoZXNpemVyICopc3lu
dGhlc2l6ZXIgd2lsbFNwZWFrUmFuZ2VPZlNwZWVjaFN0cmluZzooTlNSYW5nZSljaGFyYWN0ZXJS
YW5nZSB1dHRlcmFuY2U6KEFWU3BlZWNoVXR0ZXJhbmNlICopdXR0ZXJhbmNlDQpAQCAtMjM5LDcg
KzI0NCw3IEBAIHN0YXRpYyBmbG9hdCBnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hS
YXRlKCkNCiAgICAgaWYgKCFtX3V0dGVyYW5jZSkNCiAgICAgICAgIHJldHVybjsNCiANCi0gICAg
Ly8gaU9TIG9ubHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KKyAgICAvLyBBVlNwZWVjaFN5
bnRoZXNpemVyIG9ubHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KICAgICBtX3N5bnRoZXNp
emVyT2JqZWN0LT5jbGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVyYW5jZSwg
V2ViQ29yZTo6U3BlZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFjdGVyUmFu
Z2UubG9jYXRpb24pOw0KIH0NCiANCkBAIC0yNzUsNyArMjgwLDkgQEAgdm9pZCBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyOjppbml0aWFsaXplVm9pY2VMaXN0KCkNCiAgICAgICAgICAgICBpbmNs
dWRlVm9pY2UgPSB2b2ljZS5xdWFsaXR5ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5
RGVmYXVsdDsNCiAgICAgICAgIGlmIChpbmNsdWRlVm9pY2UpDQogI2Vsc2UNCi0gICAgICAgIGlm
ICh2b2ljZS5xdWFsaXR5ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5RGVmYXVsdCkN
CisgICAgICAgIC8vIEFWU3BlZWNoU3ludGhlc2lzIG9uIG1hY09TIGRvZXMgbm90IHN1cHBvcnQg
cXVhbGl0eSBwcm9wZXJ0eSBjb3JyZWN0bHkuDQorICAgICAgICBpZiAodm9pY2UucXVhbGl0eSA9
PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQNCisgICAgICAgICAgICB8fCAo
VEFSR0VUX09TX09TWCAmJiAhW3ZvaWNlVVJJIGhhc1N1ZmZpeDpAInByZW1pdW0iXSkpDQogI2Vu
ZGlmDQogICAgICAgICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhl
c2lzVm9pY2U6OmNyZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlzRGVmYXVs
dCkpOw0KICAgICB9DQpAQCAtMzEyLDQgKzMxOSw0IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6cmVzZXRTdGF0ZSgpDQogDQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KIA0KLSNl
bmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkN
CisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKENPQ09BKQ0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNYWMubW0NCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggZmE3
NDY1ZmY3NTliLi4wMDAwMDAwMDAwMDANCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tDQorKysgL2Rldi9udWxsDQpAQCAtMSwy
ODkgKzAsMCBAQA0KLS8qDQotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjEgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0gKg0KLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0K
LSAqIGFyZSBtZXQ6DQotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQN
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlDQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCi0gKg0KLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQ0KLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFDQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSDQotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1INCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwNCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sDQotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SDQotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQ0KLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVA0KLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQ0KLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuDQotICovDQotDQotI2ltcG9ydCAiY29uZmlnLmgiDQotI2lt
cG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIg0KLQ0KLSNpZiBFTkFCTEUoU1BFRUNI
X1NZTlRIRVNJUykgJiYgUExBVEZPUk0oTUFDKQ0KLQ0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmgiDQotI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNW
b2ljZS5oIg0KLSNpbXBvcnQgPEFwcEtpdC9OU1NwZWVjaFN5bnRoZXNpemVyLmg+DQotI2ltcG9y
dCA8cGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmg+DQotI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPg0KLQ0KLUBpbnRlcmZhY2UgV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciA6IE5TT2Jq
ZWN0PE5TU3BlZWNoU3ludGhlc2l6ZXJEZWxlZ2F0ZT4NCi17DQotICAgIFdlYkNvcmU6OlBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXIqIG1fc3ludGhlc2l6ZXJPYmplY3Q7DQotICAgIC8vIEhvbGQg
YSBSZWYgdG8gdGhlIHV0dGVyYW5jZSBzbyB0aGF0IGl0IHdvbid0IGRpc2FwcGVhciB1bnRpbCB0
aGUgc3ludGggaXMgZG9uZSB3aXRoIGl0Lg0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZSogbV91dHRlcmFuY2U7DQotDQotICAgIFJldGFpblB0cjxOU1NwZWVj
aFN5bnRoZXNpemVyPiBtX3N5bnRoZXNpemVyOw0KLSAgICBmbG9hdCBtX2Jhc2VQaXRjaDsNCi19
DQotDQotLSAoV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciAqKWluaXRXaXRoU3BlZWNoU3ludGhl
c2l6ZXI6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplcjsN
Ci0tICh2b2lkKXNwZWFrVXR0ZXJhbmNlOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSAqKXV0dGVyYW5jZTsNCi0NCi1AZW5kDQotDQotQGltcGxlbWVudGF0aW9uIFdl
YlNwZWVjaFN5bnRoZXNpc1dyYXBwZXINCi0NCi0tIChXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVy
ICopaW5pdFdpdGhTcGVlY2hTeW50aGVzaXplcjooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplciAqKXN5bnRoZXNpemVyDQotew0KLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkNCi0gICAgICAgIHJldHVybiBuaWw7DQotDQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QgPSBz
eW50aGVzaXplcjsNCi0gICAgW3NlbGYgdXBkYXRlQmFzZVBpdGNoRm9yU3ludGhlc2l6ZXJdOw0K
LSAgICByZXR1cm4gc2VsZjsNCi19DQotDQotLy8gTlNTcGVlY2hTeW50aGVzaXplciBleHBlY3Rz
IGEgV29yZHMgcGVyIE1pbnV0ZSAoV1BNKSByYXRlLiBUaGVyZSBpcyBubyBwcmVzZXQgZGVmYXVs
dA0KLS8vIGJ1dCB0aGV5IHJlY29tbWVuZCB0aGF0IG5vcm1hbCBzcGVha2luZyBpcyAxODAtMjIw
IFdQTQ0KLS0gKGZsb2F0KWNvbnZlcnRSYXRlVG9XUE06KGZsb2F0KXJhdGUNCi17DQotICAgIC8v
IFdlJ2xsIHNheSAyMDAgV1BNIGlzIHRoZSBkZWZhdWx0IDF4IHZhbHVlLg0KLSAgICByZXR1cm4g
MjAwLjBmICogcmF0ZTsNCi19DQotDQotLSAoZmxvYXQpY29udmVydFBpdGNoVG9OU1NwZWVjaFZh
bHVlOihmbG9hdClwaXRjaA0KLXsNCi0gICAgLy8gVGhpcyBhbGxvd3MgdGhlIGJhc2UgcGl0Y2gg
dG8gcmFuZ2UgZnJvbSAwJSAtIDIwMCUgb2YgdGhlIG5vcm1hbCBwaXRjaC4NCi0gICAgcmV0dXJu
IG1fYmFzZVBpdGNoICogcGl0Y2g7DQotfQ0KLQ0KLS0gKHZvaWQpdXBkYXRlQmFzZVBpdGNoRm9y
U3ludGhlc2l6ZXINCi17DQotICAgIC8vIFJlc2V0IHRoZSBiYXNlIHBpdGNoIHdoZW5ldmVyIHdl
IGNoYW5nZSB2b2ljZXMsIHNpbmNlIHRoZSBiYXNlIHBpdGNoIGlzIGRpZmZlcmVudCBmb3IgZWFj
aCB2b2ljZS4NCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0T2JqZWN0Om5pbCBmb3JQcm9wZXJ0eTpO
U1NwZWVjaFJlc2V0UHJvcGVydHkgZXJyb3I6bmlsXTsNCi0gICAgbV9iYXNlUGl0Y2ggPSBbW21f
c3ludGhlc2l6ZXIgb2JqZWN0Rm9yUHJvcGVydHk6TlNTcGVlY2hQaXRjaEJhc2VQcm9wZXJ0eSBl
cnJvcjpuaWxdIGZsb2F0VmFsdWVdOw0KLX0NCi0NCi0tICh2b2lkKXNwZWFrVXR0ZXJhbmNlOihX
ZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSAqKXV0dGVyYW5jZQ0KLXsN
Ci0gICAgLy8gV2hlbiBzcGVhayBpcyBjYWxsZWQgd2Ugc2hvdWxkIG5vdCBoYXZlIGFuIGV4aXN0
aW5nIHNwZWVjaCB1dHRlcmFuY2Ugb3V0c3RhbmRpbmcuDQotICAgIEFTU0VSVCghbV91dHRlcmFu
Y2UpOw0KLSAgICBBU1NFUlQodXR0ZXJhbmNlKTsNCi0NCi0gICAgaWYgKCFtX3N5bnRoZXNpemVy
KSB7DQotICAgICAgICBtX3N5bnRoZXNpemVyID0gYWRvcHROUyhbW05TU3BlZWNoU3ludGhlc2l6
ZXIgYWxsb2NdIGluaXRXaXRoVm9pY2U6bmlsXSk7DQotICAgICAgICBbbV9zeW50aGVzaXplciBz
ZXREZWxlZ2F0ZTpzZWxmXTsNCi0gICAgfQ0KLQ0KLSAgICAvLyBGaW5kIGlmIHdlIHNob3VsZCB1
c2UgYSBzcGVjaWZpYyB2b2ljZSBiYXNlZCBvbiB0aGUgdm9pY2VVUkkgaW4gdXR0ZXJhbmNlLg0K
LSAgICAvLyBPdGhlcndpc2UsIGZpbmQgdGhlIHZvaWNlIHRoYXQgbWF0Y2hlcyB0aGUgbGFuZ3Vh
Z2UuIFRoZSBNYWMgZG9lc24ndCBoYXZlIGEgZGVmYXVsdCB2b2ljZSBwZXIgbGFuZ3VhZ2UsIHNv
IHRoZSBmaXJzdA0KLSAgICAvLyBvbmUgd2lsbCBoYXZlIHRvIGRvLg0KLQ0KLSAgICBXZWJDb3Jl
OjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlKiB1dHRlcmFuY2VWb2ljZSA9IHV0dGVyYW5j
ZS0+dm9pY2UoKTsNCi0gICAgLy8gSWYgbm8gdm9pY2Ugd2FzIHNwZWNpZmllZCwgdHJ5IHRvIG1h
dGNoIGJ5IGxhbmd1YWdlLg0KLSAgICBpZiAoIXV0dGVyYW5jZVZvaWNlICYmICF1dHRlcmFuY2Ut
PmxhbmcoKS5pc0VtcHR5KCkpIHsNCi0gICAgICAgIGZvciAoYXV0byYgdm9pY2UgOiBtX3N5bnRo
ZXNpemVyT2JqZWN0LT52b2ljZUxpc3QoKSkgew0KLSAgICAgICAgICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKHV0dGVyYW5jZS0+bGFuZygpLCB2b2ljZS0+bGFuZygpKSkgew0KLSAgICAg
ICAgICAgICAgICB1dHRlcmFuY2VWb2ljZSA9IHZvaWNlLmdldCgpOw0KLSAgICAgICAgICAgICAg
ICBpZiAodm9pY2UtPmlzRGVmYXVsdCgpKQ0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQot
ICAgICAgICAgICAgfQ0KLSAgICAgICAgfQ0KLSAgICB9DQotDQotICAgIE5TU3RyaW5nICp2b2lj
ZVVSSSA9IG5pbDsNCi0gICAgaWYgKHV0dGVyYW5jZVZvaWNlKQ0KLSAgICAgICAgdm9pY2VVUkkg
PSB1dHRlcmFuY2VWb2ljZS0+dm9pY2VVUkkoKTsNCi0gICAgZWxzZQ0KLSAgICAgICAgdm9pY2VV
UkkgPSBbTlNTcGVlY2hTeW50aGVzaXplciBkZWZhdWx0Vm9pY2VdOw0KLQ0KLSAgICAvLyBEb24n
dCBzZXQgdGhlIHZvaWNlIHVubGVzcyBuZWNlc3NhcnkuIFRoZXJlJ3MgYSBidWcgaW4gTlNTcGVl
Y2hTeW50aGVzaXplciBzdWNoIHRoYXQNCi0gICAgLy8gc2V0dGluZyB0aGUgdm9pY2UgZm9yIHRo
ZSBmaXJzdCB0aW1lIHdpbGwgY2F1c2UgdGhlIGZpcnN0IHNwZWVjaERvbmUgY2FsbGJhY2sgdG8g
cmVwb3J0IGl0IHdhcyB1bnN1Y2Nlc3NmdWwuDQotICAgIEJPT0wgdXBkYXRlUGl0Y2ggPSBOTzsN
Ci0gICAgaWYgKCFbW21fc3ludGhlc2l6ZXIgdm9pY2VdIGlzRXF1YWxUb1N0cmluZzp2b2ljZVVS
SV0pIHsNCi0gICAgICAgIFttX3N5bnRoZXNpemVyIHNldFZvaWNlOnZvaWNlVVJJXTsNCi0gICAg
ICAgIC8vIFJlc2V0IHRoZSBiYXNlIHBpdGNoIHdoZW5ldmVyIHdlIGNoYW5nZSB2b2ljZXMuDQot
ICAgICAgICB1cGRhdGVQaXRjaCA9IFlFUzsNCi0gICAgfQ0KLQ0KLSAgICBpZiAobV9iYXNlUGl0
Y2ggPT0gMCB8fCB1cGRhdGVQaXRjaCkNCi0gICAgICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZv
clN5bnRoZXNpemVyXTsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0T2JqZWN0OltOU051bWJl
ciBudW1iZXJXaXRoRmxvYXQ6W3NlbGYgY29udmVydFBpdGNoVG9OU1NwZWVjaFZhbHVlOnV0dGVy
YW5jZS0+cGl0Y2goKV1dIGZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hCYXNlUHJvcGVydHkgZXJy
b3I6bmlsXTsNCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0UmF0ZTpbc2VsZiBjb252ZXJ0UmF0ZVRv
V1BNOnV0dGVyYW5jZS0+cmF0ZSgpXV07DQotICAgIFttX3N5bnRoZXNpemVyIHNldFZvbHVtZTp1
dHRlcmFuY2UtPnZvbHVtZSgpXTsNCi0NCi0gICAgbV91dHRlcmFuY2UgPSB1dHRlcmFuY2U7DQot
ICAgIFttX3N5bnRoZXNpemVyIHN0YXJ0U3BlYWtpbmdTdHJpbmc6dXR0ZXJhbmNlLT50ZXh0KCld
Ow0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkU3RhcnRTcGVha2luZygq
bV91dHRlcmFuY2UpOw0KLX0NCi0NCi0tICh2b2lkKXBhdXNlDQotew0KLSAgICBpZiAoIW1fdXR0
ZXJhbmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBwYXVzZVNw
ZWFraW5nQXRCb3VuZGFyeTpOU1NwZWVjaEltbWVkaWF0ZUJvdW5kYXJ5XTsNCi0gICAgbV9zeW50
aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFBhdXNlU3BlYWtpbmcoKm1fdXR0ZXJhbmNlKTsN
Ci19DQotDQotLSAodm9pZClyZXN1bWUNCi17DQotICAgIGlmICghbV91dHRlcmFuY2UpDQotICAg
ICAgICByZXR1cm47DQotDQotICAgIFttX3N5bnRoZXNpemVyIGNvbnRpbnVlU3BlYWtpbmddOw0K
LSAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkUmVzdW1lU3BlYWtpbmcoKm1f
dXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZCljYW5jZWwNCi17DQotICAgIGlmICghbV91dHRl
cmFuY2UpDQotICAgICAgICByZXR1cm47DQotDQotICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVh
a2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotICAgIG1fc3ludGhl
c2l6ZXJPYmplY3QtPmNsaWVudCgpLT5zcGVha2luZ0Vycm9yT2NjdXJyZWQoKm1fdXR0ZXJhbmNl
KTsNCi0gICAgbV91dHRlcmFuY2UgPSAwOw0KLX0NCi0NCi0tICh2b2lkKWludmFsaWRhdGUNCi17
DQotICAgIG1fdXR0ZXJhbmNlID0gMDsNCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0RGVsZWdhdGU6
bmlsXTsNCi0gICAgW21fc3ludGhlc2l6ZXIgc3RvcFNwZWFraW5nQXRCb3VuZGFyeTpOU1NwZWVj
aEltbWVkaWF0ZUJvdW5kYXJ5XTsNCi19DQotDQotLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjoo
TlNTcGVlY2hTeW50aGVzaXplciAqKXNlbmRlciBkaWRGaW5pc2hTcGVha2luZzooQk9PTClmaW5p
c2hlZFNwZWFraW5nDQotew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAgICAgcmV0dXJu
Ow0KLQ0KLSAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsNCi0NCi0gICAgLy8gQ2xlYXIgdGhlIG1f
dXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5l
dyBzcGVha2luZyBqb2IgaW1tZWRpYXRlbHkuDQotICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsNCi0gICAgbV91dHRl
cmFuY2UgPSAwOw0KLQ0KLSAgICBpZiAoZmluaXNoZWRTcGVha2luZykNCi0gICAgICAgIG1fc3lu
dGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqdXR0ZXJhbmNlKTsN
Ci0gICAgZWxzZQ0KLSAgICAgICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPnNwZWFr
aW5nRXJyb3JPY2N1cnJlZCgqdXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZClzcGVlY2hTeW50
aGVzaXplcjooTlNTcGVlY2hTeW50aGVzaXplciAqKXNlbmRlciB3aWxsU3BlYWtXb3JkOihOU1Jh
bmdlKWNoYXJhY3RlclJhbmdlIG9mU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZw0KLXsNCi0gICAg
VU5VU0VEX1BBUkFNKHNlbmRlcik7DQotICAgIFVOVVNFRF9QQVJBTShzdHJpbmcpOw0KLQ0KLSAg
ICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICAvLyBNYWMgcGxh
dGZvcm0gb25seSBzdXBwb3J0cyB3b3JkIGJvdW5kYXJpZXMuDQotICAgIG1fc3ludGhlc2l6ZXJP
YmplY3QtPmNsaWVudCgpLT5ib3VuZGFyeUV2ZW50T2NjdXJyZWQoKm1fdXR0ZXJhbmNlLCBXZWJD
b3JlOjpTcGVlY2hCb3VuZGFyeTo6U3BlZWNoV29yZEJvdW5kYXJ5LCBjaGFyYWN0ZXJSYW5nZS5s
b2NhdGlvbik7DQotfQ0KLQ0KLUBlbmQNCi0NCi1uYW1lc3BhY2UgV2ViQ29yZSB7DQotDQotUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcjo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcihQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50KiBjbGllbnQpDQotICAgIDogbV9zcGVlY2hTeW50aGVz
aXplckNsaWVudChjbGllbnQpDQotew0KLX0NCi0NCi1QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
Ojp+UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcigpDQotew0KLSAgICBbbV9wbGF0Zm9ybVNwZWVj
aFdyYXBwZXIgaW52YWxpZGF0ZV07DQotfQ0KLQ0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZBcnJheVJl
Zj4gc3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpDQotew0KLSAgICAvLyBHZXQg
YWxsIHRoZSB2b2ljZXMgb2ZmZXJlZCBieSBUVFMuDQotICAgIC8vIEJ5IGRlZmF1bHQgc3BlZWNo
IG9ubHkgcmV0dXJucyAicHJlbWl1bSIgdm9pY2VzLCB3aGljaCBkb2VzIG5vdCBpbmNsdWRlIGFs
bCB0aGUNCi0gICAgLy8gaW50ZXJuYXRpb25hbCB2b2ljZXMuIFRoaXMgYWxsb3dzIHVzIHRvIG9m
ZmVyIHNwZWVjaCBzeW50aGVzaXMgZm9yIGFsbCBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLg0KLSAgICBy
ZXR1cm4gYWRvcHRDRihDb3B5U3BlZWNoU3ludGhlc2lzVm9pY2VzRm9yTW9kZSgoX19icmlkZ2Ug
Q0ZBcnJheVJlZilAWyBAIlZvaWNlR3JvdXBEZWZhdWx0IiwgQCJWb2ljZUdyb3VwQ29tcGFjdCIg
XSkpOw0KLX0NCi0NCi1zdGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzcGVlY2hTeW50aGVz
aXNHZXREZWZhdWx0Vm9pY2VJZGVudGlmaWVyRm9yTG9jYWxlKE5TTG9jYWxlICp1c2VyTG9jYWxl
KQ0KLXsNCi0gICAgaWYgKCF1c2VyTG9jYWxlKQ0KLSAgICAgICAgcmV0dXJuIG5pbDsNCi0NCi0j
aWYgSEFWRShTUEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLSAgICByZXR1cm4gYWRvcHRD
RihDb3B5SWRlbnRpZmllclN0cmluZ0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShz
cGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCkuZ2V0KCksIChfX2JyaWRnZSBDRkxv
Y2FsZVJlZil1c2VyTG9jYWxlKSk7DQotI2Vsc2UNCi0gICAgcmV0dXJuIEdldElkZW50aWZpZXJT
dHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoc3BlZWNoU3ludGhlc2lzR2V0
Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAoX19icmlkZ2UgQ0ZMb2NhbGVSZWYpdXNlckxvY2Fs
ZSk7DQotI2VuZGlmDQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6aW5p
dGlhbGl6ZVZvaWNlTGlzdCgpDQotew0KLSAgICBhdXRvIGF2YWlsYWJsZVZvaWNlcyA9IHNwZWVj
aFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKTsNCi0gICAgTlNVSW50ZWdlciBjb3VudCA9
IFsoX19icmlkZ2UgTlNBcnJheSAqKWF2YWlsYWJsZVZvaWNlcy5nZXQoKSBjb3VudF07DQotICAg
IGZvciAoTlNVSW50ZWdlciBrID0gMDsgayA8IGNvdW50OyBrKyspIHsNCi0gICAgICAgIE5TU3Ry
aW5nICp2b2ljZU5hbWUgPSBbKF9fYnJpZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0
KCkgb2JqZWN0QXRJbmRleDprXTsNCi0gICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcyA9
IFtOU1NwZWVjaFN5bnRoZXNpemVyIGF0dHJpYnV0ZXNGb3JWb2ljZTp2b2ljZU5hbWVdOw0KLQ0K
LSAgICAgICAgTlNTdHJpbmcgKnZvaWNlVVJJID0gW2F0dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5T
Vm9pY2VJZGVudGlmaWVyXTsNCi0gICAgICAgIE5TU3RyaW5nICpuYW1lID0gW2F0dHJpYnV0ZXMg
b2JqZWN0Rm9yS2V5Ok5TVm9pY2VOYW1lXTsNCi0gICAgICAgIE5TU3RyaW5nICpsYW5ndWFnZSA9
IFthdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1ZvaWNlTG9jYWxlSWRlbnRpZmllcl07DQotICAg
ICAgICBhdXRvIGRlZmF1bHRWb2ljZVVSSSA9IHNwZWVjaFN5bnRoZXNpc0dldERlZmF1bHRWb2lj
ZUlkZW50aWZpZXJGb3JMb2NhbGUoYWRvcHROUyhbW05TTG9jYWxlIGFsbG9jXSBpbml0V2l0aExv
Y2FsZUlkZW50aWZpZXI6bGFuZ3VhZ2VdKS5nZXQoKSk7DQotDQotICAgICAgICAvLyBDaGFuZ2Ug
dG8gQkNQLTQ3IGZvcm1hdCBhcyBkZWZpbmVkIGJ5IHNwZWMuDQotICAgICAgICBsYW5ndWFnZSA9
IFtsYW5ndWFnZSBzdHJpbmdCeVJlcGxhY2luZ09jY3VycmVuY2VzT2ZTdHJpbmc6QCJfIiB3aXRo
U3RyaW5nOkAiLSJdOw0KLQ0KLSAgICAgICAgYm9vbCBpc0RlZmF1bHQgPSBbKF9fYnJpZGdlIE5T
U3RyaW5nICopZGVmYXVsdFZvaWNlVVJJLmdldCgpIGlzRXF1YWxUb1N0cmluZzp2b2ljZVVSSV07
DQotDQotICAgICAgICBtX3ZvaWNlTGlzdC5hcHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNW
b2ljZTo6Y3JlYXRlKHZvaWNlVVJJLCBuYW1lLCBsYW5ndWFnZSwgdHJ1ZSwgaXNEZWZhdWx0KSk7
DQotICAgIH0NCi19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpwYXVzZSgp
DQotew0KLSAgICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgcGF1c2VdOw0KLX0NCi0NCi12b2lk
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc3VtZSgpDQotew0KLSAgICBbbV9wbGF0Zm9y
bVNwZWVjaFdyYXBwZXIgcmVzdW1lXTsNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyOjpzcGVhayhSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+JiYg
dXR0ZXJhbmNlKQ0KLXsNCi0gICAgaWYgKCFtX3BsYXRmb3JtU3BlZWNoV3JhcHBlcikNCi0gICAg
ICAgIG1fcGxhdGZvcm1TcGVlY2hXcmFwcGVyID0gYWRvcHROUyhbW1dlYlNwZWVjaFN5bnRoZXNp
c1dyYXBwZXIgYWxsb2NdIGluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6dGhpc10pOw0KLQ0KLSAg
ICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgc3BlYWtVdHRlcmFuY2U6dXR0ZXJhbmNlLmdldCgp
XTsNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5jZWwoKQ0KLXsN
Ci0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLXZvaWQgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cmVzZXRTdGF0ZSgpDQotew0KLSAgICBbbV9wbGF0Zm9y
bVNwZWVjaFdyYXBwZXIgY2FuY2VsXTsNCi19DQotDQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0K
LQ0KLSNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oTUFDKQ0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441975</attachid>
            <date>2021-10-20 19:43:29 -0700</date>
            <delta_ts>2021-10-21 09:06:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>36136</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cN
CmluZGV4IDBkN2I2ZDU0ZDRlZS4uMmU5MmMyMTcwNzEwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEzIEBA
DQorMjAyMS0xMC0yMCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0K
KyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3Ig
TWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kcmVzIEdvbnphbGVzLg0KKw0KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1I
YXZlLmg6DQorDQogMjAyMS0xMC0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+DQogDQogICAgICAgICBbR0xJQl0gU2ltcGxpZnkgU2xlZXBEaXNhYmxlciBieSBj
aGVja2luZyBpZiB3ZSBhcmUgdW5kZXIgc2FuZGJveA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCmluZGV4
IDkwMDdlNmU2ZTdhZS4uMDRhNTk0NDQ2OGQ5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgNCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oDQpAQCAt
NzU5LDcgKzc1OSw3IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIChQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTQwMzAwDQorI2lmICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTQwMzAwKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTIwMDAw
KQ0KICNpZiAhZGVmaW5lZChIQVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNFKQ0KICNk
ZWZpbmUgSEFWRV9BVlNQRUVDSFNZTlRIRVNJU19TWVNURU1WT0lDRSAxDQogI2VuZGlmDQpAQCAt
NzcxLDEyICs3NzEsNiBAQA0KICNlbmRpZg0KICNlbmRpZg0KIA0KLSNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwDQotI2lmICFkZWZp
bmVkKEhBVkVfU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0jZGVmaW5lIEhBVkVfU1BF
RUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSAxDQotI2VuZGlmDQotI2VuZGlmDQotDQogI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBkZWZpbmVkKF9faGFzX2F0dHJpYnV0ZSkNCiAjaWYg
X19oYXNfYXR0cmlidXRlKG9iamNfZGlyZWN0KSAmJiAoIVBMQVRGT1JNKE1BQykgfHwgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApDQogI2lmICFkZWZpbmVkKEhBVkVf
TlNfRElSRUNUX1NVUFBPUlQpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCA3ZmQ3YjAxY2MzYmIuLjI1MGRhOGVh
OWZkMCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDQwIEBADQorMjAyMS0xMC0xOCAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNw
ZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVzIEdv
bnphbGVzLg0KKw0KKyAgICAgICAgQVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBz
dXBwb3J0ZWQgb24gbWFjT1MgZm9yIGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0
byB1bmlmeSBwbGF0Zm9ybSB1c2FnZS4NCisNCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoN
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOg0KKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcklPUy5tbS4NCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hS
YXRlKToNCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKToN
CisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgaW5pdFdpdGhTcGVlY2hTeW50
aGVzaXplcjpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgbWFwU3Bl
ZWNoUmF0ZVRvUGxhdGZvcm1SYXRlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lz
V3JhcHBlciBzcGVha1V0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNp
c1dyYXBwZXIgcGF1c2VdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIg
cmVzdW1lXSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIGNhbmNlbF0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRTdGFydFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkRmluaXNoU3BlZWNoVXR0ZXJhbmNlOl0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRQYXVzZVNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkQ29udGludWVTcGVlY2hVdHRlcmFuY2U6
XSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIHNwZWVjaFN5bnRoZXNp
emVyOmRpZENhbmNlbFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5
bnRoZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6d2lsbFNwZWFrUmFuZ2VPZlNwZWVjaFN0
cmluZzp1dHRlcmFuY2U6XSk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcik6DQorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOg0K
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVW
b2ljZUxpc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6
OnBhdXNlKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpy
ZXN1bWUpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnNw
ZWFrKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5j
ZWwpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0
U3RhdGUpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1hYy5tbTogUmVtb3ZlZC4NCisNCiAyMDIxLTEwLTE4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+DQogDQogICAgICAgICBDb2NvYSBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCBzaG91bGQgbm90IHVzZSBXZWJHTExheWVyDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cNCmluZGV4IDM2Mjhj
ZDM2ZDRiMS4uMDdjYzkwZGNlNjIwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NyBAQA0KKzIwMjEtMTAtMTggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IEFuZHJlcyBHb256YWxlcy4NCisNCisgICAgICAgICogUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6DQorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oOg0KKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06
DQorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmg6DQorICAgICAg
ICAqIHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oOiBSZW1vdmVkLg0KKw0KIDIwMjEt
MTAtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEJ1
ZyAyMzE4ODI6IFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0VENDSWRlbnRp
dHkoKSBsZWFrcyBhIHRjY19pZGVudGl0eV90DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQppbmRleCBjNmRhNjAwNWQwYjguLjBjYTMzZWRk
NmViNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvag0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qDQpAQCAtMTY5LDcgKzE2OSw2IEBADQogCQlBMTA4MjZGOTFGNTc2MjkyMDA0Nzcy
QUMgLyogV2ViUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICovOyB9Ow0KIAkJ
QTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tICovOyB9Ow0KIAkJQTEwODI2RkUxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3Jh
cGhpY3NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi87IH07DQotCQlB
MTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0ODFGNkFGRjhFMDBD
NEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi87IH07DQogCQlBMTE3NUI0QjFGNkIyRDdF
MDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87
IH07DQogCQlBMTE3NUI0RTFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QzFGNkIzMzczMDBD
NEI5RjAgLyogUG9wdXBNZW51LmggKi87IH07DQogCQlBMTE3NUI0RjFGNkIzMzczMDBDNEI5RjAg
LyogUG9wdXBNZW51Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLzsgfTsNCkBA
IC0zOTYsNyArMzk1LDYgQEANCiAJCUExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KIAkJQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlB
MTA4MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOU0dyYXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBMTE3NUI0
ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFN5bnRoZXNpc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTEx
NzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0Nl
bGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9w
dXBNZW51Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9wdXBNZW51Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KQEAgLTY0Myw3ICs2NDEsNiBAQA0KIAkJCQkwQzc3ODU4NDFGNDUx
MzBGMDBGNEVCQjYgLyogTlNXaW5kb3dTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAw
RjRFQkI2IC8qIFBJUFNQSS5oICovLA0KIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyog
UXVpY2tMb29rTWFjU1BJLmggKi8sDQotCQkJCUExMTc1QjQ4MUY2QUZGOEUwMEM0QjlGMCAvKiBT
cGVlY2hTeW50aGVzaXNTUEkuaCAqLywNCiAJCQkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8q
IFN5c3RlbVByZXZpZXdTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8q
IFRlbGVwaG9ueVV0aWxpdGllc1NQSS5oICovLA0KIAkJCSk7DQpAQCAtMTAxMiw3ICsxMDA5LDYg
QEANCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVycyAq
LywNCiAJCQkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggaW4g
SGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5o
IGluIEhlYWRlcnMgKi8sDQotCQkJCUExMTc1QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hT
eW50aGVzaXNTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkwQzVBRjkyMTFGNDNBNEM3MDAyRUFD
MDIgLyogU1FMaXRlM1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTcxQjExNDIwMjY4MjNBQ0Qw
MDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJMzEzMDhC
MTQyMEEyMTcwNTAwM0ZCOTI5IC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaA0KaW5kZXggOWRiOWFmOGY3ZWMxLi5hNzM3MDk3N2JkYzggMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgNCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KQEAgLTc2
LDYgKzc2LDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlN0cmVhbVNlc3Np
b24pDQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFE
RVIoUEFMLCBBVkF1ZGlvU2Vzc2lvbikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUws
IEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZP
Uk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFN5bnRo
ZXNpc1ZvaWNlKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50
aGVzaXplcikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJh
bmNlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLm1tDQppbmRleCBkMjFkNDljZDc3MDIuLmJkNmViYmNiOTkxMyAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0N
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
bW0NCkBAIC0xMDIsNiArMTAyLDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbiwgUEFMX0UNCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb24sIFBBTF9FWFBPUlQpDQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGVy
c2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCwgUEFMX0VYUE9SVCkNCisjZW5kaWYNCisNCisjaWYg
UExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2lzVm9pY2UsIFBBTF9FWFBPUlQpDQog
U09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWU3BlZWNoU3ludGhlc2l6ZXIsIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoVXR0ZXJhbmNlLCBQ
QUxfRVhQT1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FYU3BlZWNoTWFuYWdlclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVhTcGVlY2hNYW5hZ2VyU1BJLmgNCmluZGV4IGZlY2YxMGNlYTNiZi4uMDQ2OGJhOTFiYTUzIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5h
Z2VyU1BJLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNo
TWFuYWdlclNQSS5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNwcmFnbWEgb25jZQ0KIA0KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNpZiBQTEFURk9STShDT0NPQSkNCiANCiAvLyBGSVhN
RTogVW5kbyB3aGVuIGlzU3lzdGVtVm9pY2UgaXMgYXZhaWxhYmxlIGluIGFsbCBTREtzLg0KICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAwDQpAQCAtNDIsNSArNDIsNSBAQA0KIA0KICNl
bmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQ0KIA0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQ0KKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkNCiANCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmgNCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYjkyOTc4MmJlYjBjLi4wMDAwMDAwMDAwMDANCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KKysr
IC9kZXYvbnVsbA0KQEAgLTEsNDMgKzAsMCBAQA0KLS8qDQotICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
DQotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQotICogYXJlIG1ldDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4N
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0K
LSAqDQotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJw0KLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMNCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YNCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpDQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRg0KLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4NCi0gKi8NCi0NCi0jcHJhZ21hIG9uY2UNCi0NCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykNCi0NCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZp
Y2VzUHJpdi5oPg0KLQ0KLSNlbmRpZg0KLQ0KLVdURl9FWFRFUk5fQ19CRUdJTg0KLQ0KLUNGQXJy
YXlSZWYgQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoQ0ZUeXBlUmVmIG1vZGUpOw0K
LSNpZiBIQVZFKFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotQ0ZTdHJpbmdSZWYgQ29w
eUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJh
eVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZWxzZQ0KLUNGU3RyaW5nUmVmIEdldElkZW50
aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2
b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZW5kaWYNCi0NCi1XVEZfRVhURVJOX0NfRU5EDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQNCmluZGV4IGY2MzQ1MzJlMTdjMC4uYTM0ZjIyYTg3NjZlIDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dA0KQEAgLTI1NSw2ICsyNTUsNyBAQCBwbGF0Zm9ybS9jb2Nv
YS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3Rl
Ym9hcmRDb2NvYS5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2Eu
bW0NCiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbQ0KK3BsYXRmb3Jt
L2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSBAbm8tdW5pZnkNCiBwbGF0
Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQ0KIHBsYXRmb3Jt
L2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0NCiBwbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21t
YW5kTGlzdGVuZXJDb2NvYS5tbQ0KQEAgLTQzOCw3ICs0MzksNiBAQCBwbGF0Zm9ybS9pb3MvUGFz
dGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBA
bm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tDQogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tDQotcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0Lm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVy
dGVySU9TLm1tDQogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQ0KQEAgLTQ4NSw3ICs0ODUsNiBA
QCBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZFdyaXRlci5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMu
bW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0NCi1wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWMubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vbWFjL1BsdWdpbkJsb2NrbGlz
dC5tbQ0KIHBsYXRmb3JtL21hYy9Qb3dlck9ic2VydmVyTWFjLmNwcA0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5kZXggMjFjYjczZGU3
ZDg2Li4yNDY4ZmE3NDFmNzUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KQEAgLTM3MjEsNyArMzcyMSw3IEBADQogCQlBOUQyNDgw
MTBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ3RkQwRDc1N0U2OTAwRkRGOTU5IC8q
IEpTRE9NUGx1Z2luQXJyYXkuaCAqLzsgfTsNCiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAv
KiBKU0RPTU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOUQyNDgwMzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9
Ow0KIAkJQTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1
N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9Ow0KLQkJQUExMkRGNDkx
NzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5QkND
MDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLzsgfTsNCisJCUFB
MTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2Eu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1
RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICov
OyB9Ow0KIAkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMDk3OEVF
MEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsNCiAJCUFBMkE1QUNFMTZBNDg1RkQwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpc1ZvaWNlLmggKi87IH07DQogCQlBQTJBNUFEMDE2QTQ4NjA0MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlLmggKi87IH07DQpAQCAtNzMyNiw3ICs3MzI2LDYgQEANCiAJCTI5RDdCQ0Y5MTQ0
NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFMDRBMjdCRUQyRjgxRjk4RTkwMjJCIC8qIEpTQmVmb3Jl
VW5sb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCZWZvcmVV
bmxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFNEQ4REYxNkIw
OTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KLQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJ
MjlGQUY0QjUxOTVBQjA4OTAwQTUyMkRDIC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRVbmRvSW5zZXJ0aW9uTWFya3Vw
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMDI2Q0I2NkVEMDAz
QkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0tleXdv
cmRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMjI2Q0I2
NkVEMDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NLZXl3b3JkVmFsdWUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTEzNjQ3LDcgKzEzNjQ2LDcgQEAN
CiAJCUFBREVGRTQzMjVBRjRGQ0IwMDQwREQ2NyAvKiBGb2N1c09wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9jdXNPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUUy
N0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzUx
NkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAw
QzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQorCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFGNUI3QjExNTI0QjRCRDAwMDRDQjQ5IC8qIFdl
YlNvY2tldEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlNvY2tldEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI1
MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUIyM0EzMjYwOUJCQTdEMDAwNjdDQzUz
IC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9Ow0KQEAgLTIyNDEzLDcgKzIyNDEyLDYgQEANCiAJCQkJQkNBQTQ4NkQxNEEwNTI1MzAwODhG
QUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tICovLA0KIAkJCQlDNUY3NjVCQTE0RTFF
Q0Y0MDA2Qzg5OUIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tICovLA0KIAkJCQlCQzk0RDEw
NzBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sDQotCQkJCTI5RTRE
OEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICov
LA0KIAkJCQlDREEyOUExNTFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjLmggKi8sDQogCQkJCUNEQTI5QTE0MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VNYWMubW0gKi8sDQogCQkJCTFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAv
KiBQbHVnaW5CbG9ja2xpc3QuaCAqLywNCkBAIC0yNTA4Miw3ICsyNTA4MCw2IEBADQogCQkJCTI2
NjAxRUJFMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSAqLywN
CiAJCQkJQzUyNzhCMEIxN0YyMTJFQTAwM0EyOTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5t
bSAqLywNCiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9T
Lm1tICovLA0KLQkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcklPUy5tbSAqLywNCiAJCQkJQ0RBMjlBMkUxQ0JGNzNGQzAwOTAxQ0NGIC8qIFBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmggKi8sDQogCQkJCUNEQTI5QTJGMUNCRjczRkMw
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSAqLywNCiAJCQkJQTFD
MTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXJJT1MubW0gKi8sDQpAQCAt
MjUyNDEsNiArMjUyMzgsNyBAQA0KIAkJCQk5QkVEMkNBRjFGN0NDMDYyMDA2NjYwMTggLyogUGFz
dGVib2FyZENvY29hLm1tICovLA0KIAkJCQlGNEZCMzUwMDIzNTBDOTYyMDBGMDA5NEEgLyogUGFz
dGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLywNCiAJCQkJRjQ2MjhBOUUyMzREM0JCRjAwQkM4
ODRDIC8qIFBsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tICovLA0KKwkJCQlBQUUzNzU1RDE3NDI5
QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovLA0KIAkJ
CQk1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8sDQogCQkJCUNE
QTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbC5oICovLA0KIAkJ
CQlDREEyOUEwRDFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaCAqLywNCkBAIC0zNjk1Miw3ICszNjk1MCw3IEBADQogCQkJCTFBNTY5RDFBMEQ3RTJC
ODIwMDdDMzk4MyAvKiBvYmpjX3V0aWxpdHkubW0gaW4gU291cmNlcyAqLywNCiAJCQkJRTE2OTgy
NjAxMTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8s
DQogCQkJCUNFQTI4NDY2MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlP
Uy5tbSBpbiBTb3VyY2VzICovLA0KLQkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLA0KKwkJCQlBQTEyREY0
OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sDQogCQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDREEyOUExNjFDQkRB
NTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sDQogCQkJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1t
DQpzaW1pbGFyaXR5IGluZGV4IDkyJQ0KcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCnJlbmFtZSB0byBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0N
CmluZGV4IDU4NTgyNDQ2YmI0Ni4uYjA4NmI4MWNkNzM0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
b2NvYS5tbQ0KQEAgLTI1LDExICsyNSwxNyBAQA0KICNpbXBvcnQgImNvbmZpZy5oIg0KICNpbXBv
cnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCiANCi0jaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCiANCiAjaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIg0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCINCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisNCisj
aWYgX19oYXNfaW5jbHVkZSg8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4pDQorI2ltcG9y
dCA8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisjZWxzZQ0KKyNpbXBvcnQgPEFWRm91
bmRhdGlvbi9BVkZvdW5kYXRpb24uaD4NCisjZW5kaWYNCisNCiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL0FYU3BlZWNoTWFuYWdlclNQSS5oPg0KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRp
b25zLmg+DQogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPg0KQEAgLTYzLDggKzY5LDcgQEAgc3Rh
dGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICNkZWZp
bmUgQVZTcGVlY2hVdHRlcmFuY2VEZWZhdWx0U3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5j
ZURlZmF1bHRTcGVlY2hSYXRlKCkNCiAjZGVmaW5lIEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNw
ZWVjaFJhdGUgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogDQotQGlu
dGVyZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8QVZTcGVlY2hTeW50
aGVzaXplckRlbGVnYXRlPg0KLXsNCitAaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBw
ZXIgOiBOU09iamVjdDxBVlNwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+IHsNCiAgICAgV2ViQ29y
ZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCiAgICAg
Ly8gSG9sZCBhIFJlZiB0byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFy
IHVudGlsIHRoZSBzeW50aCBpcyBkb25lIHdpdGggaXQuDQogICAgIFJlZlB0cjxXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gbV91dHRlcmFuY2U7DQpAQCAtMTkxLDEw
ICsxOTYsMTAgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVj
aFJhdGUoKQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFu
Y2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFr
aW5nIGpvYiBpbW1lZGlhdGVseS4NCi0gICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3Rl
Y3RlZFV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KICAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7
DQogDQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2lu
ZygqcGxhdGZvcm1VdHRlcmFuY2UpOw0KKyAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQo
KS0+ZGlkRmluaXNoU3BlYWtpbmcoKnByb3RlY3RlZFV0dGVyYW5jZSk7DQogfQ0KIA0KIC0gKHZv
aWQpc3BlZWNoU3ludGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBk
aWRQYXVzZVNwZWVjaFV0dGVyYW5jZTooQVZTcGVlY2hVdHRlcmFuY2UgKil1dHRlcmFuY2UNCkBA
IC0yMjUsMTAgKzIzMCwxMCBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhp
bXVtU3BlZWNoUmF0ZSgpDQogICAgICAgICByZXR1cm47DQogDQogICAgIC8vIENsZWFyIHRoZSBt
X3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBu
ZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFu
Y2U7DQorICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZT4gcHJvdGVjdGVkVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQogICAgIG1fdXR0ZXJhbmNlID0g
bnVsbHB0cjsNCiANCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlz
aFNwZWFraW5nKCpwbGF0Zm9ybVV0dGVyYW5jZSk7DQorICAgIG1fc3ludGhlc2l6ZXJPYmplY3Qt
PmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqcHJvdGVjdGVkVXR0ZXJhbmNlKTsNCiB9DQog
DQogLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRo
ZXNpemVyIHdpbGxTcGVha1JhbmdlT2ZTcGVlY2hTdHJpbmc6KE5TUmFuZ2UpY2hhcmFjdGVyUmFu
Z2UgdXR0ZXJhbmNlOihBVlNwZWVjaFV0dGVyYW5jZSAqKXV0dGVyYW5jZQ0KQEAgLTIzOSw3ICsy
NDQsNyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0
ZSgpDQogICAgIGlmICghbV91dHRlcmFuY2UpDQogICAgICAgICByZXR1cm47DQogDQotICAgIC8v
IGlPUyBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCisgICAgLy8gQVZTcGVlY2hTeW50
aGVzaXplciBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCiAgICAgbV9zeW50aGVzaXpl
ck9iamVjdC0+Y2xpZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdl
YkNvcmU6OlNwZWVjaEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdl
LmxvY2F0aW9uKTsNCiB9DQogDQpAQCAtMjc1LDcgKzI4MCw5IEBAIHZvaWQgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcjo6aW5pdGlhbGl6ZVZvaWNlTGlzdCgpDQogICAgICAgICAgICAgaW5jbHVk
ZVZvaWNlID0gdm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURl
ZmF1bHQ7DQogICAgICAgICBpZiAoaW5jbHVkZVZvaWNlKQ0KICNlbHNlDQotICAgICAgICBpZiAo
dm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQpDQor
ICAgICAgICAvLyBBVlNwZWVjaFN5bnRoZXNpcyBvbiBtYWNPUyBkb2VzIG5vdCBzdXBwb3J0IHF1
YWxpdHkgcHJvcGVydHkgY29ycmVjdGx5Lg0KKyAgICAgICAgaWYgKHZvaWNlLnF1YWxpdHkgPT0g
QVZTcGVlY2hTeW50aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0DQorICAgICAgICAgICAgfHwgKFRB
UkdFVF9PU19PU1ggJiYgIVt2b2ljZVVSSSBoYXNTdWZmaXg6QCJwcmVtaXVtIl0pKQ0KICNlbmRp
Zg0KICAgICAgICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1ZvaWNlOjpjcmVhdGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQp
KTsNCiAgICAgfQ0KQEAgLTMxMiw0ICszMTksNCBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXI6OnJlc2V0U3RhdGUoKQ0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5k
aWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQor
I2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTWFjLm1tDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGZhNzQ2
NWZmNzU5Yi4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMjg5
ICswLDAgQEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0g
KiBhcmUgbWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQotICoNCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkNCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQ0KLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUg0KLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SDQotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsDQotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LA0KLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUg0KLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkNCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UNCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLg0KLSAqLw0KLQ0KLSNpbXBvcnQgImNvbmZpZy5oIg0KLSNpbXBv
cnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCi0NCi0jaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCi0NCi0jaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCINCi0jaW1wb3J0IDxBcHBLaXQvTlNTcGVlY2hTeW50aGVzaXplci5oPg0KLSNpbXBvcnQg
PHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oPg0KLSNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4NCi0NCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgOiBOU09iamVj
dDxOU1NwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KLSAgICBXZWJDb3JlOjpQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KLSAgICAvLyBIb2xkIGEg
UmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBlYXIgdW50aWwgdGhl
IHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UqIG1fdXR0ZXJhbmNlOw0KLQ0KLSAgICBSZXRhaW5QdHI8TlNTcGVlY2hT
eW50aGVzaXplcj4gbV9zeW50aGVzaXplcjsNCi0gICAgZmxvYXQgbV9iYXNlUGl0Y2g7DQotfQ0K
LQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0V2l0aFNwZWVjaFN5bnRoZXNp
emVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXI7DQot
LSAodm9pZClzcGVha1V0dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UgKil1dHRlcmFuY2U7DQotDQotQGVuZA0KLQ0KLUBpbXBsZW1lbnRhdGlvbiBXZWJT
cGVlY2hTeW50aGVzaXNXcmFwcGVyDQotDQotLSAoV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciAq
KWluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIgKilzeW50aGVzaXplcg0KLXsNCi0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
DQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0ID0gc3lu
dGhlc2l6ZXI7DQotICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZvclN5bnRoZXNpemVyXTsNCi0g
ICAgcmV0dXJuIHNlbGY7DQotfQ0KLQ0KLS8vIE5TU3BlZWNoU3ludGhlc2l6ZXIgZXhwZWN0cyBh
IFdvcmRzIHBlciBNaW51dGUgKFdQTSkgcmF0ZS4gVGhlcmUgaXMgbm8gcHJlc2V0IGRlZmF1bHQN
Ci0vLyBidXQgdGhleSByZWNvbW1lbmQgdGhhdCBub3JtYWwgc3BlYWtpbmcgaXMgMTgwLTIyMCBX
UE0NCi0tIChmbG9hdCljb252ZXJ0UmF0ZVRvV1BNOihmbG9hdClyYXRlDQotew0KLSAgICAvLyBX
ZSdsbCBzYXkgMjAwIFdQTSBpcyB0aGUgZGVmYXVsdCAxeCB2YWx1ZS4NCi0gICAgcmV0dXJuIDIw
MC4wZiAqIHJhdGU7DQotfQ0KLQ0KLS0gKGZsb2F0KWNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1
ZTooZmxvYXQpcGl0Y2gNCi17DQotICAgIC8vIFRoaXMgYWxsb3dzIHRoZSBiYXNlIHBpdGNoIHRv
IHJhbmdlIGZyb20gMCUgLSAyMDAlIG9mIHRoZSBub3JtYWwgcGl0Y2guDQotICAgIHJldHVybiBt
X2Jhc2VQaXRjaCAqIHBpdGNoOw0KLX0NCi0NCi0tICh2b2lkKXVwZGF0ZUJhc2VQaXRjaEZvclN5
bnRoZXNpemVyDQotew0KLSAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBj
aGFuZ2Ugdm9pY2VzLCBzaW5jZSB0aGUgYmFzZSBwaXRjaCBpcyBkaWZmZXJlbnQgZm9yIGVhY2gg
dm9pY2UuDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpuaWwgZm9yUHJvcGVydHk6TlNT
cGVlY2hSZXNldFByb3BlcnR5IGVycm9yOm5pbF07DQotICAgIG1fYmFzZVBpdGNoID0gW1ttX3N5
bnRoZXNpemVyIG9iamVjdEZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hCYXNlUHJvcGVydHkgZXJy
b3I6bmlsXSBmbG9hdFZhbHVlXTsNCi19DQotDQotLSAodm9pZClzcGVha1V0dGVyYW5jZTooV2Vi
Q29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgKil1dHRlcmFuY2UNCi17DQot
ICAgIC8vIFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3QgaGF2ZSBhbiBleGlzdGlu
ZyBzcGVlY2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0KLSAgICBBU1NFUlQoIW1fdXR0ZXJhbmNl
KTsNCi0gICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQotICAgIGlmICghbV9zeW50aGVzaXplcikg
ew0KLSAgICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1tOU1NwZWVjaFN5bnRoZXNpemVy
IGFsbG9jXSBpbml0V2l0aFZvaWNlOm5pbF0pOw0KLSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0
RGVsZWdhdGU6c2VsZl07DQotICAgIH0NCi0NCi0gICAgLy8gRmluZCBpZiB3ZSBzaG91bGQgdXNl
IGEgc3BlY2lmaWMgdm9pY2UgYmFzZWQgb24gdGhlIHZvaWNlVVJJIGluIHV0dGVyYW5jZS4NCi0g
ICAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSB2b2ljZSB0aGF0IG1hdGNoZXMgdGhlIGxhbmd1YWdl
LiBUaGUgTWFjIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgdm9pY2UgcGVyIGxhbmd1YWdlLCBzbyB0
aGUgZmlyc3QNCi0gICAgLy8gb25lIHdpbGwgaGF2ZSB0byBkby4NCi0NCi0gICAgV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZSogdXR0ZXJhbmNlVm9pY2UgPSB1dHRlcmFuY2Ut
PnZvaWNlKCk7DQotICAgIC8vIElmIG5vIHZvaWNlIHdhcyBzcGVjaWZpZWQsIHRyeSB0byBtYXRj
aCBieSBsYW5ndWFnZS4NCi0gICAgaWYgKCF1dHRlcmFuY2VWb2ljZSAmJiAhdXR0ZXJhbmNlLT5s
YW5nKCkuaXNFbXB0eSgpKSB7DQotICAgICAgICBmb3IgKGF1dG8mIHZvaWNlIDogbV9zeW50aGVz
aXplck9iamVjdC0+dm9pY2VMaXN0KCkpIHsNCi0gICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZSh1dHRlcmFuY2UtPmxhbmcoKSwgdm9pY2UtPmxhbmcoKSkpIHsNCi0gICAgICAg
ICAgICAgICAgdXR0ZXJhbmNlVm9pY2UgPSB2b2ljZS5nZXQoKTsNCi0gICAgICAgICAgICAgICAg
aWYgKHZvaWNlLT5pc0RlZmF1bHQoKSkNCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KLSAg
ICAgICAgICAgIH0NCi0gICAgICAgIH0NCi0gICAgfQ0KLQ0KLSAgICBOU1N0cmluZyAqdm9pY2VV
UkkgPSBuaWw7DQotICAgIGlmICh1dHRlcmFuY2VWb2ljZSkNCi0gICAgICAgIHZvaWNlVVJJID0g
dXR0ZXJhbmNlVm9pY2UtPnZvaWNlVVJJKCk7DQotICAgIGVsc2UNCi0gICAgICAgIHZvaWNlVVJJ
ID0gW05TU3BlZWNoU3ludGhlc2l6ZXIgZGVmYXVsdFZvaWNlXTsNCi0NCi0gICAgLy8gRG9uJ3Qg
c2V0IHRoZSB2b2ljZSB1bmxlc3MgbmVjZXNzYXJ5LiBUaGVyZSdzIGEgYnVnIGluIE5TU3BlZWNo
U3ludGhlc2l6ZXIgc3VjaCB0aGF0DQotICAgIC8vIHNldHRpbmcgdGhlIHZvaWNlIGZvciB0aGUg
Zmlyc3QgdGltZSB3aWxsIGNhdXNlIHRoZSBmaXJzdCBzcGVlY2hEb25lIGNhbGxiYWNrIHRvIHJl
cG9ydCBpdCB3YXMgdW5zdWNjZXNzZnVsLg0KLSAgICBCT09MIHVwZGF0ZVBpdGNoID0gTk87DQot
ICAgIGlmICghW1ttX3N5bnRoZXNpemVyIHZvaWNlXSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkld
KSB7DQotICAgICAgICBbbV9zeW50aGVzaXplciBzZXRWb2ljZTp2b2ljZVVSSV07DQotICAgICAg
ICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBjaGFuZ2Ugdm9pY2VzLg0KLSAg
ICAgICAgdXBkYXRlUGl0Y2ggPSBZRVM7DQotICAgIH0NCi0NCi0gICAgaWYgKG1fYmFzZVBpdGNo
ID09IDAgfHwgdXBkYXRlUGl0Y2gpDQotICAgICAgICBbc2VsZiB1cGRhdGVCYXNlUGl0Y2hGb3JT
eW50aGVzaXplcl07DQotDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpbTlNOdW1iZXIg
bnVtYmVyV2l0aEZsb2F0OltzZWxmIGNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1ZTp1dHRlcmFu
Y2UtPnBpdGNoKCldXSBmb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IGVycm9y
Om5pbF07DQotICAgIFttX3N5bnRoZXNpemVyIHNldFJhdGU6W3NlbGYgY29udmVydFJhdGVUb1dQ
TTp1dHRlcmFuY2UtPnJhdGUoKV1dOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXRWb2x1bWU6dXR0
ZXJhbmNlLT52b2x1bWUoKV07DQotDQotICAgIG1fdXR0ZXJhbmNlID0gdXR0ZXJhbmNlOw0KLSAg
ICBbbV9zeW50aGVzaXplciBzdGFydFNwZWFraW5nU3RyaW5nOnV0dGVyYW5jZS0+dGV4dCgpXTsN
Ci0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcoKm1f
dXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZClwYXVzZQ0KLXsNCi0gICAgaWYgKCFtX3V0dGVy
YW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgcGF1c2VTcGVh
a2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotICAgIG1fc3ludGhl
c2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRQYXVzZVNwZWFraW5nKCptX3V0dGVyYW5jZSk7DQot
fQ0KLQ0KLS0gKHZvaWQpcmVzdW1lDQotew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAg
ICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBjb250aW51ZVNwZWFraW5nXTsNCi0g
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFJlc3VtZVNwZWFraW5nKCptX3V0
dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpY2FuY2VsDQotew0KLSAgICBpZiAoIW1fdXR0ZXJh
bmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBzdG9wU3BlYWtp
bmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAgICBtX3N5bnRoZXNp
emVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVkKCptX3V0dGVyYW5jZSk7
DQotICAgIG1fdXR0ZXJhbmNlID0gMDsNCi19DQotDQotLSAodm9pZClpbnZhbGlkYXRlDQotew0K
LSAgICBtX3V0dGVyYW5jZSA9IDA7DQotICAgIFttX3N5bnRoZXNpemVyIHNldERlbGVnYXRlOm5p
bF07DQotICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVha2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJ
bW1lZGlhdGVCb3VuZGFyeV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KE5T
U3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgZGlkRmluaXNoU3BlYWtpbmc6KEJPT0wpZmluaXNo
ZWRTcGVha2luZw0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsN
Ci0NCi0gICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7DQotDQotICAgIC8vIENsZWFyIHRoZSBtX3V0
dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcg
c3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQotICAgIG1fdXR0ZXJh
bmNlID0gMDsNCi0NCi0gICAgaWYgKGZpbmlzaGVkU3BlYWtpbmcpDQotICAgICAgICBtX3N5bnRo
ZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnV0dGVyYW5jZSk7DQot
ICAgIGVsc2UNCi0gICAgICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5zcGVha2lu
Z0Vycm9yT2NjdXJyZWQoKnV0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhl
c2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgd2lsbFNwZWFrV29yZDooTlNSYW5n
ZSljaGFyYWN0ZXJSYW5nZSBvZlN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcNCi17DQotICAgIFVO
VVNFRF9QQVJBTShzZW5kZXIpOw0KLSAgICBVTlVTRURfUEFSQU0oc3RyaW5nKTsNCi0NCi0gICAg
aWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgLy8gTWFjIHBsYXRm
b3JtIG9ubHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KLSAgICBtX3N5bnRoZXNpemVyT2Jq
ZWN0LT5jbGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVyYW5jZSwgV2ViQ29y
ZTo6U3BlZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFjdGVyUmFuZ2UubG9j
YXRpb24pOw0KLX0NCi0NCi1AZW5kDQotDQotbmFtZXNwYWNlIFdlYkNvcmUgew0KLQ0KLVBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KQ0KLSAgICA6IG1fc3BlZWNoU3ludGhlc2l6
ZXJDbGllbnQoY2xpZW50KQ0KLXsNCi19DQotDQotUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6
flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hX
cmFwcGVyIGludmFsaWRhdGVdOw0KLX0NCi0NCi1zdGF0aWMgUmV0YWluUHRyPENGQXJyYXlSZWY+
IHNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKQ0KLXsNCi0gICAgLy8gR2V0IGFs
bCB0aGUgdm9pY2VzIG9mZmVyZWQgYnkgVFRTLg0KLSAgICAvLyBCeSBkZWZhdWx0IHNwZWVjaCBv
bmx5IHJldHVybnMgInByZW1pdW0iIHZvaWNlcywgd2hpY2ggZG9lcyBub3QgaW5jbHVkZSBhbGwg
dGhlDQotICAgIC8vIGludGVybmF0aW9uYWwgdm9pY2VzLiBUaGlzIGFsbG93cyB1cyB0byBvZmZl
ciBzcGVlY2ggc3ludGhlc2lzIGZvciBhbGwgc3VwcG9ydGVkIGxhbmd1YWdlcy4NCi0gICAgcmV0
dXJuIGFkb3B0Q0YoQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoKF9fYnJpZGdlIENG
QXJyYXlSZWYpQFsgQCJWb2ljZUdyb3VwRGVmYXVsdCIsIEAiVm9pY2VHcm91cENvbXBhY3QiIF0p
KTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3BlZWNoU3ludGhlc2lz
R2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZShOU0xvY2FsZSAqdXNlckxvY2FsZSkN
Ci17DQotICAgIGlmICghdXNlckxvY2FsZSkNCi0gICAgICAgIHJldHVybiBuaWw7DQotDQotI2lm
IEhBVkUoU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0gICAgcmV0dXJuIGFkb3B0Q0Yo
Q29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoc3Bl
ZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAoX19icmlkZ2UgQ0ZMb2Nh
bGVSZWYpdXNlckxvY2FsZSkpOw0KLSNlbHNlDQotICAgIHJldHVybiBHZXRJZGVudGlmaWVyU3Ry
aW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5bnRoZXNpc0dldFZv
aWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVmKXVzZXJMb2NhbGUp
Ow0KLSNlbmRpZg0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRp
YWxpemVWb2ljZUxpc3QoKQ0KLXsNCi0gICAgYXV0byBhdmFpbGFibGVWb2ljZXMgPSBzcGVlY2hT
eW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCk7DQotICAgIE5TVUludGVnZXIgY291bnQgPSBb
KF9fYnJpZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0KCkgY291bnRdOw0KLSAgICBm
b3IgKE5TVUludGVnZXIgayA9IDA7IGsgPCBjb3VudDsgaysrKSB7DQotICAgICAgICBOU1N0cmlu
ZyAqdm9pY2VOYW1lID0gWyhfX2JyaWRnZSBOU0FycmF5ICopYXZhaWxhYmxlVm9pY2VzLmdldCgp
IG9iamVjdEF0SW5kZXg6a107DQotICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBb
TlNTcGVlY2hTeW50aGVzaXplciBhdHRyaWJ1dGVzRm9yVm9pY2U6dm9pY2VOYW1lXTsNCi0NCi0g
ICAgICAgIE5TU3RyaW5nICp2b2ljZVVSSSA9IFthdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1Zv
aWNlSWRlbnRpZmllcl07DQotICAgICAgICBOU1N0cmluZyAqbmFtZSA9IFthdHRyaWJ1dGVzIG9i
amVjdEZvcktleTpOU1ZvaWNlTmFtZV07DQotICAgICAgICBOU1N0cmluZyAqbGFuZ3VhZ2UgPSBb
YXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUxvY2FsZUlkZW50aWZpZXJdOw0KLSAgICAg
ICAgYXV0byBkZWZhdWx0Vm9pY2VVUkkgPSBzcGVlY2hTeW50aGVzaXNHZXREZWZhdWx0Vm9pY2VJ
ZGVudGlmaWVyRm9yTG9jYWxlKGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxvY10gaW5pdFdpdGhMb2Nh
bGVJZGVudGlmaWVyOmxhbmd1YWdlXSkuZ2V0KCkpOw0KLQ0KLSAgICAgICAgLy8gQ2hhbmdlIHRv
IEJDUC00NyBmb3JtYXQgYXMgZGVmaW5lZCBieSBzcGVjLg0KLSAgICAgICAgbGFuZ3VhZ2UgPSBb
bGFuZ3VhZ2Ugc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09mU3RyaW5nOkAiXyIgd2l0aFN0
cmluZzpAIi0iXTsNCi0NCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0ID0gWyhfX2JyaWRnZSBOU1N0
cmluZyAqKWRlZmF1bHRWb2ljZVVSSS5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkldOw0K
LQ0KLSAgICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2U6OmNyZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlzRGVmYXVsdCkpOw0K
LSAgICB9DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cGF1c2UoKQ0K
LXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHBhdXNlXTsNCi19DQotDQotdm9pZCBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyIHJlc3VtZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcjo6c3BlYWsoUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiYmIHV0
dGVyYW5jZSkNCi17DQotICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIpDQotICAgICAg
ICBtX3BsYXRmb3JtU3BlZWNoV3JhcHBlciA9IGFkb3B0TlMoW1tXZWJTcGVlY2hTeW50aGVzaXNX
cmFwcGVyIGFsbG9jXSBpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOnRoaXNdKTsNCi0NCi0gICAg
W21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHNwZWFrVXR0ZXJhbmNlOnV0dGVyYW5jZS5nZXQoKV07
DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y2FuY2VsKCkNCi17DQot
ICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KLX0NCi0NCi12b2lkIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCi0N
Ci0jZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442037</attachid>
            <date>2021-10-21 09:06:15 -0700</date>
            <delta_ts>2021-10-21 09:07:02 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>36136</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cN
CmluZGV4IDBkN2I2ZDU0ZDRlZS4uMmU5MmMyMTcwNzEwIDEwMDY0NA0KLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEzIEBA
DQorMjAyMS0xMC0yMCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0K
KyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3Ig
TWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kcmVzIEdvbnphbGVzLg0KKw0KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1I
YXZlLmg6DQorDQogMjAyMS0xMC0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+DQogDQogICAgICAgICBbR0xJQl0gU2ltcGxpZnkgU2xlZXBEaXNhYmxlciBieSBj
aGVja2luZyBpZiB3ZSBhcmUgdW5kZXIgc2FuZGJveA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCmluZGV4
IDkwMDdlNmU2ZTdhZS4uMDRhNTk0NDQ2OGQ5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgNCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oDQpAQCAt
NzU5LDcgKzc1OSw3IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIChQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTQwMzAwDQorI2lmICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTQwMzAwKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTIwMDAw
KQ0KICNpZiAhZGVmaW5lZChIQVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNFKQ0KICNk
ZWZpbmUgSEFWRV9BVlNQRUVDSFNZTlRIRVNJU19TWVNURU1WT0lDRSAxDQogI2VuZGlmDQpAQCAt
NzcxLDEyICs3NzEsNiBAQA0KICNlbmRpZg0KICNlbmRpZg0KIA0KLSNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwDQotI2lmICFkZWZp
bmVkKEhBVkVfU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0jZGVmaW5lIEhBVkVfU1BF
RUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSAxDQotI2VuZGlmDQotI2VuZGlmDQotDQogI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBkZWZpbmVkKF9faGFzX2F0dHJpYnV0ZSkNCiAjaWYg
X19oYXNfYXR0cmlidXRlKG9iamNfZGlyZWN0KSAmJiAoIVBMQVRGT1JNKE1BQykgfHwgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApDQogI2lmICFkZWZpbmVkKEhBVkVf
TlNfRElSRUNUX1NVUFBPUlQpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCA3ZmQ3YjAxY2MzYmIuLmI0ZTk3ZGRi
ZTQ2OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDQwIEBADQorMjAyMS0xMC0xOCAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNw
ZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVzIEdv
bnphbGV6Lg0KKw0KKyAgICAgICAgQVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBz
dXBwb3J0ZWQgb24gbWFjT1MgZm9yIGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0
byB1bmlmeSBwbGF0Zm9ybSB1c2FnZS4NCisNCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoN
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOg0KKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcklPUy5tbS4NCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hS
YXRlKToNCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKToN
CisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgaW5pdFdpdGhTcGVlY2hTeW50
aGVzaXplcjpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgbWFwU3Bl
ZWNoUmF0ZVRvUGxhdGZvcm1SYXRlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lz
V3JhcHBlciBzcGVha1V0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNp
c1dyYXBwZXIgcGF1c2VdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIg
cmVzdW1lXSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIGNhbmNlbF0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRTdGFydFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkRmluaXNoU3BlZWNoVXR0ZXJhbmNlOl0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRQYXVzZVNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkQ29udGludWVTcGVlY2hVdHRlcmFuY2U6
XSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIHNwZWVjaFN5bnRoZXNp
emVyOmRpZENhbmNlbFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5
bnRoZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6d2lsbFNwZWFrUmFuZ2VPZlNwZWVjaFN0
cmluZzp1dHRlcmFuY2U6XSk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcik6DQorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOg0K
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVW
b2ljZUxpc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6
OnBhdXNlKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpy
ZXN1bWUpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnNw
ZWFrKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5j
ZWwpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0
U3RhdGUpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1hYy5tbTogUmVtb3ZlZC4NCisNCiAyMDIxLTEwLTE4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+DQogDQogICAgICAgICBDb2NvYSBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCBzaG91bGQgbm90IHVzZSBXZWJHTExheWVyDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cNCmluZGV4IDM2Mjhj
ZDM2ZDRiMS4uMmFkNjQ0OWIxOWY2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NyBAQA0KKzIwMjEtMTAtMTggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IEFuZHJlcyBHb256YWxlei4NCisNCisgICAgICAgICogUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6DQorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oOg0KKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06
DQorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmg6DQorICAgICAg
ICAqIHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oOiBSZW1vdmVkLg0KKw0KIDIwMjEt
MTAtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEJ1
ZyAyMzE4ODI6IFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0VENDSWRlbnRp
dHkoKSBsZWFrcyBhIHRjY19pZGVudGl0eV90DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQppbmRleCBjNmRhNjAwNWQwYjguLjBjYTMzZWRk
NmViNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvag0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qDQpAQCAtMTY5LDcgKzE2OSw2IEBADQogCQlBMTA4MjZGOTFGNTc2MjkyMDA0Nzcy
QUMgLyogV2ViUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICovOyB9Ow0KIAkJ
QTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tICovOyB9Ow0KIAkJQTEwODI2RkUxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3Jh
cGhpY3NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi87IH07DQotCQlB
MTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0ODFGNkFGRjhFMDBD
NEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi87IH07DQogCQlBMTE3NUI0QjFGNkIyRDdF
MDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87
IH07DQogCQlBMTE3NUI0RTFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QzFGNkIzMzczMDBD
NEI5RjAgLyogUG9wdXBNZW51LmggKi87IH07DQogCQlBMTE3NUI0RjFGNkIzMzczMDBDNEI5RjAg
LyogUG9wdXBNZW51Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLzsgfTsNCkBA
IC0zOTYsNyArMzk1LDYgQEANCiAJCUExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KIAkJQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlB
MTA4MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOU0dyYXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBMTE3NUI0
ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFN5bnRoZXNpc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTEx
NzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0Nl
bGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9w
dXBNZW51Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9wdXBNZW51Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KQEAgLTY0Myw3ICs2NDEsNiBAQA0KIAkJCQkwQzc3ODU4NDFGNDUx
MzBGMDBGNEVCQjYgLyogTlNXaW5kb3dTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAw
RjRFQkI2IC8qIFBJUFNQSS5oICovLA0KIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyog
UXVpY2tMb29rTWFjU1BJLmggKi8sDQotCQkJCUExMTc1QjQ4MUY2QUZGOEUwMEM0QjlGMCAvKiBT
cGVlY2hTeW50aGVzaXNTUEkuaCAqLywNCiAJCQkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8q
IFN5c3RlbVByZXZpZXdTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8q
IFRlbGVwaG9ueVV0aWxpdGllc1NQSS5oICovLA0KIAkJCSk7DQpAQCAtMTAxMiw3ICsxMDA5LDYg
QEANCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVycyAq
LywNCiAJCQkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggaW4g
SGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5o
IGluIEhlYWRlcnMgKi8sDQotCQkJCUExMTc1QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hT
eW50aGVzaXNTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkwQzVBRjkyMTFGNDNBNEM3MDAyRUFD
MDIgLyogU1FMaXRlM1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTcxQjExNDIwMjY4MjNBQ0Qw
MDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJMzEzMDhC
MTQyMEEyMTcwNTAwM0ZCOTI5IC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaA0KaW5kZXggOWRiOWFmOGY3ZWMxLi5hNzM3MDk3N2JkYzggMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgNCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KQEAgLTc2
LDYgKzc2LDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlN0cmVhbVNlc3Np
b24pDQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFE
RVIoUEFMLCBBVkF1ZGlvU2Vzc2lvbikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUws
IEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZP
Uk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFN5bnRo
ZXNpc1ZvaWNlKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50
aGVzaXplcikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJh
bmNlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLm1tDQppbmRleCBkMjFkNDljZDc3MDIuLmJkNmViYmNiOTkxMyAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0N
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
bW0NCkBAIC0xMDIsNiArMTAyLDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbiwgUEFMX0UNCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb24sIFBBTF9FWFBPUlQpDQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGVy
c2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCwgUEFMX0VYUE9SVCkNCisjZW5kaWYNCisNCisjaWYg
UExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2lzVm9pY2UsIFBBTF9FWFBPUlQpDQog
U09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWU3BlZWNoU3ludGhlc2l6ZXIsIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoVXR0ZXJhbmNlLCBQ
QUxfRVhQT1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FYU3BlZWNoTWFuYWdlclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVhTcGVlY2hNYW5hZ2VyU1BJLmgNCmluZGV4IGZlY2YxMGNlYTNiZi4uMDQ2OGJhOTFiYTUzIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5h
Z2VyU1BJLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNo
TWFuYWdlclNQSS5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNwcmFnbWEgb25jZQ0KIA0KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNpZiBQTEFURk9STShDT0NPQSkNCiANCiAvLyBGSVhN
RTogVW5kbyB3aGVuIGlzU3lzdGVtVm9pY2UgaXMgYXZhaWxhYmxlIGluIGFsbCBTREtzLg0KICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAwDQpAQCAtNDIsNSArNDIsNSBAQA0KIA0KICNl
bmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQ0KIA0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQ0KKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkNCiANCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmgNCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYjkyOTc4MmJlYjBjLi4wMDAwMDAwMDAwMDANCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KKysr
IC9kZXYvbnVsbA0KQEAgLTEsNDMgKzAsMCBAQA0KLS8qDQotICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
DQotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQotICogYXJlIG1ldDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4N
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0K
LSAqDQotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJw0KLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMNCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YNCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpDQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRg0KLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4NCi0gKi8NCi0NCi0jcHJhZ21hIG9uY2UNCi0NCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykNCi0NCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZp
Y2VzUHJpdi5oPg0KLQ0KLSNlbmRpZg0KLQ0KLVdURl9FWFRFUk5fQ19CRUdJTg0KLQ0KLUNGQXJy
YXlSZWYgQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoQ0ZUeXBlUmVmIG1vZGUpOw0K
LSNpZiBIQVZFKFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotQ0ZTdHJpbmdSZWYgQ29w
eUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJh
eVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZWxzZQ0KLUNGU3RyaW5nUmVmIEdldElkZW50
aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2
b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZW5kaWYNCi0NCi1XVEZfRVhURVJOX0NfRU5EDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQNCmluZGV4IGY2MzQ1MzJlMTdjMC4uYTM0ZjIyYTg3NjZlIDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dA0KQEAgLTI1NSw2ICsyNTUsNyBAQCBwbGF0Zm9ybS9jb2Nv
YS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3Rl
Ym9hcmRDb2NvYS5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2Eu
bW0NCiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbQ0KK3BsYXRmb3Jt
L2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSBAbm8tdW5pZnkNCiBwbGF0
Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQ0KIHBsYXRmb3Jt
L2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0NCiBwbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21t
YW5kTGlzdGVuZXJDb2NvYS5tbQ0KQEAgLTQzOCw3ICs0MzksNiBAQCBwbGF0Zm9ybS9pb3MvUGFz
dGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBA
bm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tDQogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tDQotcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0Lm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVy
dGVySU9TLm1tDQogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQ0KQEAgLTQ4NSw3ICs0ODUsNiBA
QCBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZFdyaXRlci5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMu
bW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0NCi1wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWMubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vbWFjL1BsdWdpbkJsb2NrbGlz
dC5tbQ0KIHBsYXRmb3JtL21hYy9Qb3dlck9ic2VydmVyTWFjLmNwcA0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5kZXggMjFjYjczZGU3
ZDg2Li4yNDY4ZmE3NDFmNzUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KQEAgLTM3MjEsNyArMzcyMSw3IEBADQogCQlBOUQyNDgw
MTBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ3RkQwRDc1N0U2OTAwRkRGOTU5IC8q
IEpTRE9NUGx1Z2luQXJyYXkuaCAqLzsgfTsNCiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAv
KiBKU0RPTU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOUQyNDgwMzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9
Ow0KIAkJQTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1
N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9Ow0KLQkJQUExMkRGNDkx
NzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5QkND
MDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLzsgfTsNCisJCUFB
MTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2Eu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1
RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICov
OyB9Ow0KIAkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMDk3OEVF
MEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsNCiAJCUFBMkE1QUNFMTZBNDg1RkQwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpc1ZvaWNlLmggKi87IH07DQogCQlBQTJBNUFEMDE2QTQ4NjA0MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlLmggKi87IH07DQpAQCAtNzMyNiw3ICs3MzI2LDYgQEANCiAJCTI5RDdCQ0Y5MTQ0
NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFMDRBMjdCRUQyRjgxRjk4RTkwMjJCIC8qIEpTQmVmb3Jl
VW5sb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCZWZvcmVV
bmxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFNEQ4REYxNkIw
OTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KLQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJ
MjlGQUY0QjUxOTVBQjA4OTAwQTUyMkRDIC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRVbmRvSW5zZXJ0aW9uTWFya3Vw
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMDI2Q0I2NkVEMDAz
QkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0tleXdv
cmRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMjI2Q0I2
NkVEMDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NLZXl3b3JkVmFsdWUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTEzNjQ3LDcgKzEzNjQ2LDcgQEAN
CiAJCUFBREVGRTQzMjVBRjRGQ0IwMDQwREQ2NyAvKiBGb2N1c09wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9jdXNPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUUy
N0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzUx
NkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAw
QzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQorCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFGNUI3QjExNTI0QjRCRDAwMDRDQjQ5IC8qIFdl
YlNvY2tldEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlNvY2tldEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI1
MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUIyM0EzMjYwOUJCQTdEMDAwNjdDQzUz
IC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9Ow0KQEAgLTIyNDEzLDcgKzIyNDEyLDYgQEANCiAJCQkJQkNBQTQ4NkQxNEEwNTI1MzAwODhG
QUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tICovLA0KIAkJCQlDNUY3NjVCQTE0RTFF
Q0Y0MDA2Qzg5OUIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tICovLA0KIAkJCQlCQzk0RDEw
NzBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sDQotCQkJCTI5RTRE
OEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICov
LA0KIAkJCQlDREEyOUExNTFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjLmggKi8sDQogCQkJCUNEQTI5QTE0MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VNYWMubW0gKi8sDQogCQkJCTFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAv
KiBQbHVnaW5CbG9ja2xpc3QuaCAqLywNCkBAIC0yNTA4Miw3ICsyNTA4MCw2IEBADQogCQkJCTI2
NjAxRUJFMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSAqLywN
CiAJCQkJQzUyNzhCMEIxN0YyMTJFQTAwM0EyOTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5t
bSAqLywNCiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9T
Lm1tICovLA0KLQkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcklPUy5tbSAqLywNCiAJCQkJQ0RBMjlBMkUxQ0JGNzNGQzAwOTAxQ0NGIC8qIFBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmggKi8sDQogCQkJCUNEQTI5QTJGMUNCRjczRkMw
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSAqLywNCiAJCQkJQTFD
MTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXJJT1MubW0gKi8sDQpAQCAt
MjUyNDEsNiArMjUyMzgsNyBAQA0KIAkJCQk5QkVEMkNBRjFGN0NDMDYyMDA2NjYwMTggLyogUGFz
dGVib2FyZENvY29hLm1tICovLA0KIAkJCQlGNEZCMzUwMDIzNTBDOTYyMDBGMDA5NEEgLyogUGFz
dGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLywNCiAJCQkJRjQ2MjhBOUUyMzREM0JCRjAwQkM4
ODRDIC8qIFBsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tICovLA0KKwkJCQlBQUUzNzU1RDE3NDI5
QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovLA0KIAkJ
CQk1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8sDQogCQkJCUNE
QTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbC5oICovLA0KIAkJ
CQlDREEyOUEwRDFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaCAqLywNCkBAIC0zNjk1Miw3ICszNjk1MCw3IEBADQogCQkJCTFBNTY5RDFBMEQ3RTJC
ODIwMDdDMzk4MyAvKiBvYmpjX3V0aWxpdHkubW0gaW4gU291cmNlcyAqLywNCiAJCQkJRTE2OTgy
NjAxMTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8s
DQogCQkJCUNFQTI4NDY2MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlP
Uy5tbSBpbiBTb3VyY2VzICovLA0KLQkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLA0KKwkJCQlBQTEyREY0
OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sDQogCQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDREEyOUExNjFDQkRB
NTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sDQogCQkJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1t
DQpzaW1pbGFyaXR5IGluZGV4IDkyJQ0KcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCnJlbmFtZSB0byBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0N
CmluZGV4IDU4NTgyNDQ2YmI0Ni4uYjA4NmI4MWNkNzM0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
b2NvYS5tbQ0KQEAgLTI1LDExICsyNSwxNyBAQA0KICNpbXBvcnQgImNvbmZpZy5oIg0KICNpbXBv
cnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCiANCi0jaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCiANCiAjaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIg0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCINCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisNCisj
aWYgX19oYXNfaW5jbHVkZSg8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4pDQorI2ltcG9y
dCA8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisjZWxzZQ0KKyNpbXBvcnQgPEFWRm91
bmRhdGlvbi9BVkZvdW5kYXRpb24uaD4NCisjZW5kaWYNCisNCiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL0FYU3BlZWNoTWFuYWdlclNQSS5oPg0KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRp
b25zLmg+DQogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPg0KQEAgLTYzLDggKzY5LDcgQEAgc3Rh
dGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICNkZWZp
bmUgQVZTcGVlY2hVdHRlcmFuY2VEZWZhdWx0U3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5j
ZURlZmF1bHRTcGVlY2hSYXRlKCkNCiAjZGVmaW5lIEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNw
ZWVjaFJhdGUgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogDQotQGlu
dGVyZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8QVZTcGVlY2hTeW50
aGVzaXplckRlbGVnYXRlPg0KLXsNCitAaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBw
ZXIgOiBOU09iamVjdDxBVlNwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+IHsNCiAgICAgV2ViQ29y
ZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCiAgICAg
Ly8gSG9sZCBhIFJlZiB0byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFy
IHVudGlsIHRoZSBzeW50aCBpcyBkb25lIHdpdGggaXQuDQogICAgIFJlZlB0cjxXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gbV91dHRlcmFuY2U7DQpAQCAtMTkxLDEw
ICsxOTYsMTAgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVj
aFJhdGUoKQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFu
Y2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFr
aW5nIGpvYiBpbW1lZGlhdGVseS4NCi0gICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3Rl
Y3RlZFV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KICAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7
DQogDQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2lu
ZygqcGxhdGZvcm1VdHRlcmFuY2UpOw0KKyAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQo
KS0+ZGlkRmluaXNoU3BlYWtpbmcoKnByb3RlY3RlZFV0dGVyYW5jZSk7DQogfQ0KIA0KIC0gKHZv
aWQpc3BlZWNoU3ludGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBk
aWRQYXVzZVNwZWVjaFV0dGVyYW5jZTooQVZTcGVlY2hVdHRlcmFuY2UgKil1dHRlcmFuY2UNCkBA
IC0yMjUsMTAgKzIzMCwxMCBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhp
bXVtU3BlZWNoUmF0ZSgpDQogICAgICAgICByZXR1cm47DQogDQogICAgIC8vIENsZWFyIHRoZSBt
X3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBu
ZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFu
Y2U7DQorICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZT4gcHJvdGVjdGVkVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQogICAgIG1fdXR0ZXJhbmNlID0g
bnVsbHB0cjsNCiANCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlz
aFNwZWFraW5nKCpwbGF0Zm9ybVV0dGVyYW5jZSk7DQorICAgIG1fc3ludGhlc2l6ZXJPYmplY3Qt
PmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqcHJvdGVjdGVkVXR0ZXJhbmNlKTsNCiB9DQog
DQogLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRo
ZXNpemVyIHdpbGxTcGVha1JhbmdlT2ZTcGVlY2hTdHJpbmc6KE5TUmFuZ2UpY2hhcmFjdGVyUmFu
Z2UgdXR0ZXJhbmNlOihBVlNwZWVjaFV0dGVyYW5jZSAqKXV0dGVyYW5jZQ0KQEAgLTIzOSw3ICsy
NDQsNyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0
ZSgpDQogICAgIGlmICghbV91dHRlcmFuY2UpDQogICAgICAgICByZXR1cm47DQogDQotICAgIC8v
IGlPUyBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCisgICAgLy8gQVZTcGVlY2hTeW50
aGVzaXplciBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCiAgICAgbV9zeW50aGVzaXpl
ck9iamVjdC0+Y2xpZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdl
YkNvcmU6OlNwZWVjaEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdl
LmxvY2F0aW9uKTsNCiB9DQogDQpAQCAtMjc1LDcgKzI4MCw5IEBAIHZvaWQgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcjo6aW5pdGlhbGl6ZVZvaWNlTGlzdCgpDQogICAgICAgICAgICAgaW5jbHVk
ZVZvaWNlID0gdm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURl
ZmF1bHQ7DQogICAgICAgICBpZiAoaW5jbHVkZVZvaWNlKQ0KICNlbHNlDQotICAgICAgICBpZiAo
dm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQpDQor
ICAgICAgICAvLyBBVlNwZWVjaFN5bnRoZXNpcyBvbiBtYWNPUyBkb2VzIG5vdCBzdXBwb3J0IHF1
YWxpdHkgcHJvcGVydHkgY29ycmVjdGx5Lg0KKyAgICAgICAgaWYgKHZvaWNlLnF1YWxpdHkgPT0g
QVZTcGVlY2hTeW50aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0DQorICAgICAgICAgICAgfHwgKFRB
UkdFVF9PU19PU1ggJiYgIVt2b2ljZVVSSSBoYXNTdWZmaXg6QCJwcmVtaXVtIl0pKQ0KICNlbmRp
Zg0KICAgICAgICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1ZvaWNlOjpjcmVhdGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQp
KTsNCiAgICAgfQ0KQEAgLTMxMiw0ICszMTksNCBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXI6OnJlc2V0U3RhdGUoKQ0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5k
aWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQor
I2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTWFjLm1tDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGZhNzQ2
NWZmNzU5Yi4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMjg5
ICswLDAgQEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0g
KiBhcmUgbWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQotICoNCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkNCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQ0KLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUg0KLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SDQotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsDQotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LA0KLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUg0KLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkNCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UNCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLg0KLSAqLw0KLQ0KLSNpbXBvcnQgImNvbmZpZy5oIg0KLSNpbXBv
cnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCi0NCi0jaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCi0NCi0jaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCINCi0jaW1wb3J0IDxBcHBLaXQvTlNTcGVlY2hTeW50aGVzaXplci5oPg0KLSNpbXBvcnQg
PHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oPg0KLSNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4NCi0NCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgOiBOU09iamVj
dDxOU1NwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KLSAgICBXZWJDb3JlOjpQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KLSAgICAvLyBIb2xkIGEg
UmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBlYXIgdW50aWwgdGhl
IHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UqIG1fdXR0ZXJhbmNlOw0KLQ0KLSAgICBSZXRhaW5QdHI8TlNTcGVlY2hT
eW50aGVzaXplcj4gbV9zeW50aGVzaXplcjsNCi0gICAgZmxvYXQgbV9iYXNlUGl0Y2g7DQotfQ0K
LQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0V2l0aFNwZWVjaFN5bnRoZXNp
emVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXI7DQot
LSAodm9pZClzcGVha1V0dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UgKil1dHRlcmFuY2U7DQotDQotQGVuZA0KLQ0KLUBpbXBsZW1lbnRhdGlvbiBXZWJT
cGVlY2hTeW50aGVzaXNXcmFwcGVyDQotDQotLSAoV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciAq
KWluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIgKilzeW50aGVzaXplcg0KLXsNCi0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
DQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0ID0gc3lu
dGhlc2l6ZXI7DQotICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZvclN5bnRoZXNpemVyXTsNCi0g
ICAgcmV0dXJuIHNlbGY7DQotfQ0KLQ0KLS8vIE5TU3BlZWNoU3ludGhlc2l6ZXIgZXhwZWN0cyBh
IFdvcmRzIHBlciBNaW51dGUgKFdQTSkgcmF0ZS4gVGhlcmUgaXMgbm8gcHJlc2V0IGRlZmF1bHQN
Ci0vLyBidXQgdGhleSByZWNvbW1lbmQgdGhhdCBub3JtYWwgc3BlYWtpbmcgaXMgMTgwLTIyMCBX
UE0NCi0tIChmbG9hdCljb252ZXJ0UmF0ZVRvV1BNOihmbG9hdClyYXRlDQotew0KLSAgICAvLyBX
ZSdsbCBzYXkgMjAwIFdQTSBpcyB0aGUgZGVmYXVsdCAxeCB2YWx1ZS4NCi0gICAgcmV0dXJuIDIw
MC4wZiAqIHJhdGU7DQotfQ0KLQ0KLS0gKGZsb2F0KWNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1
ZTooZmxvYXQpcGl0Y2gNCi17DQotICAgIC8vIFRoaXMgYWxsb3dzIHRoZSBiYXNlIHBpdGNoIHRv
IHJhbmdlIGZyb20gMCUgLSAyMDAlIG9mIHRoZSBub3JtYWwgcGl0Y2guDQotICAgIHJldHVybiBt
X2Jhc2VQaXRjaCAqIHBpdGNoOw0KLX0NCi0NCi0tICh2b2lkKXVwZGF0ZUJhc2VQaXRjaEZvclN5
bnRoZXNpemVyDQotew0KLSAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBj
aGFuZ2Ugdm9pY2VzLCBzaW5jZSB0aGUgYmFzZSBwaXRjaCBpcyBkaWZmZXJlbnQgZm9yIGVhY2gg
dm9pY2UuDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpuaWwgZm9yUHJvcGVydHk6TlNT
cGVlY2hSZXNldFByb3BlcnR5IGVycm9yOm5pbF07DQotICAgIG1fYmFzZVBpdGNoID0gW1ttX3N5
bnRoZXNpemVyIG9iamVjdEZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hCYXNlUHJvcGVydHkgZXJy
b3I6bmlsXSBmbG9hdFZhbHVlXTsNCi19DQotDQotLSAodm9pZClzcGVha1V0dGVyYW5jZTooV2Vi
Q29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgKil1dHRlcmFuY2UNCi17DQot
ICAgIC8vIFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3QgaGF2ZSBhbiBleGlzdGlu
ZyBzcGVlY2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0KLSAgICBBU1NFUlQoIW1fdXR0ZXJhbmNl
KTsNCi0gICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQotICAgIGlmICghbV9zeW50aGVzaXplcikg
ew0KLSAgICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1tOU1NwZWVjaFN5bnRoZXNpemVy
IGFsbG9jXSBpbml0V2l0aFZvaWNlOm5pbF0pOw0KLSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0
RGVsZWdhdGU6c2VsZl07DQotICAgIH0NCi0NCi0gICAgLy8gRmluZCBpZiB3ZSBzaG91bGQgdXNl
IGEgc3BlY2lmaWMgdm9pY2UgYmFzZWQgb24gdGhlIHZvaWNlVVJJIGluIHV0dGVyYW5jZS4NCi0g
ICAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSB2b2ljZSB0aGF0IG1hdGNoZXMgdGhlIGxhbmd1YWdl
LiBUaGUgTWFjIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgdm9pY2UgcGVyIGxhbmd1YWdlLCBzbyB0
aGUgZmlyc3QNCi0gICAgLy8gb25lIHdpbGwgaGF2ZSB0byBkby4NCi0NCi0gICAgV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZSogdXR0ZXJhbmNlVm9pY2UgPSB1dHRlcmFuY2Ut
PnZvaWNlKCk7DQotICAgIC8vIElmIG5vIHZvaWNlIHdhcyBzcGVjaWZpZWQsIHRyeSB0byBtYXRj
aCBieSBsYW5ndWFnZS4NCi0gICAgaWYgKCF1dHRlcmFuY2VWb2ljZSAmJiAhdXR0ZXJhbmNlLT5s
YW5nKCkuaXNFbXB0eSgpKSB7DQotICAgICAgICBmb3IgKGF1dG8mIHZvaWNlIDogbV9zeW50aGVz
aXplck9iamVjdC0+dm9pY2VMaXN0KCkpIHsNCi0gICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZSh1dHRlcmFuY2UtPmxhbmcoKSwgdm9pY2UtPmxhbmcoKSkpIHsNCi0gICAgICAg
ICAgICAgICAgdXR0ZXJhbmNlVm9pY2UgPSB2b2ljZS5nZXQoKTsNCi0gICAgICAgICAgICAgICAg
aWYgKHZvaWNlLT5pc0RlZmF1bHQoKSkNCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KLSAg
ICAgICAgICAgIH0NCi0gICAgICAgIH0NCi0gICAgfQ0KLQ0KLSAgICBOU1N0cmluZyAqdm9pY2VV
UkkgPSBuaWw7DQotICAgIGlmICh1dHRlcmFuY2VWb2ljZSkNCi0gICAgICAgIHZvaWNlVVJJID0g
dXR0ZXJhbmNlVm9pY2UtPnZvaWNlVVJJKCk7DQotICAgIGVsc2UNCi0gICAgICAgIHZvaWNlVVJJ
ID0gW05TU3BlZWNoU3ludGhlc2l6ZXIgZGVmYXVsdFZvaWNlXTsNCi0NCi0gICAgLy8gRG9uJ3Qg
c2V0IHRoZSB2b2ljZSB1bmxlc3MgbmVjZXNzYXJ5LiBUaGVyZSdzIGEgYnVnIGluIE5TU3BlZWNo
U3ludGhlc2l6ZXIgc3VjaCB0aGF0DQotICAgIC8vIHNldHRpbmcgdGhlIHZvaWNlIGZvciB0aGUg
Zmlyc3QgdGltZSB3aWxsIGNhdXNlIHRoZSBmaXJzdCBzcGVlY2hEb25lIGNhbGxiYWNrIHRvIHJl
cG9ydCBpdCB3YXMgdW5zdWNjZXNzZnVsLg0KLSAgICBCT09MIHVwZGF0ZVBpdGNoID0gTk87DQot
ICAgIGlmICghW1ttX3N5bnRoZXNpemVyIHZvaWNlXSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkld
KSB7DQotICAgICAgICBbbV9zeW50aGVzaXplciBzZXRWb2ljZTp2b2ljZVVSSV07DQotICAgICAg
ICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBjaGFuZ2Ugdm9pY2VzLg0KLSAg
ICAgICAgdXBkYXRlUGl0Y2ggPSBZRVM7DQotICAgIH0NCi0NCi0gICAgaWYgKG1fYmFzZVBpdGNo
ID09IDAgfHwgdXBkYXRlUGl0Y2gpDQotICAgICAgICBbc2VsZiB1cGRhdGVCYXNlUGl0Y2hGb3JT
eW50aGVzaXplcl07DQotDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpbTlNOdW1iZXIg
bnVtYmVyV2l0aEZsb2F0OltzZWxmIGNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1ZTp1dHRlcmFu
Y2UtPnBpdGNoKCldXSBmb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IGVycm9y
Om5pbF07DQotICAgIFttX3N5bnRoZXNpemVyIHNldFJhdGU6W3NlbGYgY29udmVydFJhdGVUb1dQ
TTp1dHRlcmFuY2UtPnJhdGUoKV1dOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXRWb2x1bWU6dXR0
ZXJhbmNlLT52b2x1bWUoKV07DQotDQotICAgIG1fdXR0ZXJhbmNlID0gdXR0ZXJhbmNlOw0KLSAg
ICBbbV9zeW50aGVzaXplciBzdGFydFNwZWFraW5nU3RyaW5nOnV0dGVyYW5jZS0+dGV4dCgpXTsN
Ci0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcoKm1f
dXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZClwYXVzZQ0KLXsNCi0gICAgaWYgKCFtX3V0dGVy
YW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgcGF1c2VTcGVh
a2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotICAgIG1fc3ludGhl
c2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRQYXVzZVNwZWFraW5nKCptX3V0dGVyYW5jZSk7DQot
fQ0KLQ0KLS0gKHZvaWQpcmVzdW1lDQotew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAg
ICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBjb250aW51ZVNwZWFraW5nXTsNCi0g
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFJlc3VtZVNwZWFraW5nKCptX3V0
dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpY2FuY2VsDQotew0KLSAgICBpZiAoIW1fdXR0ZXJh
bmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBzdG9wU3BlYWtp
bmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAgICBtX3N5bnRoZXNp
emVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVkKCptX3V0dGVyYW5jZSk7
DQotICAgIG1fdXR0ZXJhbmNlID0gMDsNCi19DQotDQotLSAodm9pZClpbnZhbGlkYXRlDQotew0K
LSAgICBtX3V0dGVyYW5jZSA9IDA7DQotICAgIFttX3N5bnRoZXNpemVyIHNldERlbGVnYXRlOm5p
bF07DQotICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVha2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJ
bW1lZGlhdGVCb3VuZGFyeV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KE5T
U3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgZGlkRmluaXNoU3BlYWtpbmc6KEJPT0wpZmluaXNo
ZWRTcGVha2luZw0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsN
Ci0NCi0gICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7DQotDQotICAgIC8vIENsZWFyIHRoZSBtX3V0
dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcg
c3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQotICAgIG1fdXR0ZXJh
bmNlID0gMDsNCi0NCi0gICAgaWYgKGZpbmlzaGVkU3BlYWtpbmcpDQotICAgICAgICBtX3N5bnRo
ZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnV0dGVyYW5jZSk7DQot
ICAgIGVsc2UNCi0gICAgICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5zcGVha2lu
Z0Vycm9yT2NjdXJyZWQoKnV0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhl
c2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgd2lsbFNwZWFrV29yZDooTlNSYW5n
ZSljaGFyYWN0ZXJSYW5nZSBvZlN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcNCi17DQotICAgIFVO
VVNFRF9QQVJBTShzZW5kZXIpOw0KLSAgICBVTlVTRURfUEFSQU0oc3RyaW5nKTsNCi0NCi0gICAg
aWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgLy8gTWFjIHBsYXRm
b3JtIG9ubHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KLSAgICBtX3N5bnRoZXNpemVyT2Jq
ZWN0LT5jbGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVyYW5jZSwgV2ViQ29y
ZTo6U3BlZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFjdGVyUmFuZ2UubG9j
YXRpb24pOw0KLX0NCi0NCi1AZW5kDQotDQotbmFtZXNwYWNlIFdlYkNvcmUgew0KLQ0KLVBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KQ0KLSAgICA6IG1fc3BlZWNoU3ludGhlc2l6
ZXJDbGllbnQoY2xpZW50KQ0KLXsNCi19DQotDQotUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6
flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hX
cmFwcGVyIGludmFsaWRhdGVdOw0KLX0NCi0NCi1zdGF0aWMgUmV0YWluUHRyPENGQXJyYXlSZWY+
IHNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKQ0KLXsNCi0gICAgLy8gR2V0IGFs
bCB0aGUgdm9pY2VzIG9mZmVyZWQgYnkgVFRTLg0KLSAgICAvLyBCeSBkZWZhdWx0IHNwZWVjaCBv
bmx5IHJldHVybnMgInByZW1pdW0iIHZvaWNlcywgd2hpY2ggZG9lcyBub3QgaW5jbHVkZSBhbGwg
dGhlDQotICAgIC8vIGludGVybmF0aW9uYWwgdm9pY2VzLiBUaGlzIGFsbG93cyB1cyB0byBvZmZl
ciBzcGVlY2ggc3ludGhlc2lzIGZvciBhbGwgc3VwcG9ydGVkIGxhbmd1YWdlcy4NCi0gICAgcmV0
dXJuIGFkb3B0Q0YoQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoKF9fYnJpZGdlIENG
QXJyYXlSZWYpQFsgQCJWb2ljZUdyb3VwRGVmYXVsdCIsIEAiVm9pY2VHcm91cENvbXBhY3QiIF0p
KTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3BlZWNoU3ludGhlc2lz
R2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZShOU0xvY2FsZSAqdXNlckxvY2FsZSkN
Ci17DQotICAgIGlmICghdXNlckxvY2FsZSkNCi0gICAgICAgIHJldHVybiBuaWw7DQotDQotI2lm
IEhBVkUoU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0gICAgcmV0dXJuIGFkb3B0Q0Yo
Q29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoc3Bl
ZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAoX19icmlkZ2UgQ0ZMb2Nh
bGVSZWYpdXNlckxvY2FsZSkpOw0KLSNlbHNlDQotICAgIHJldHVybiBHZXRJZGVudGlmaWVyU3Ry
aW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5bnRoZXNpc0dldFZv
aWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVmKXVzZXJMb2NhbGUp
Ow0KLSNlbmRpZg0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRp
YWxpemVWb2ljZUxpc3QoKQ0KLXsNCi0gICAgYXV0byBhdmFpbGFibGVWb2ljZXMgPSBzcGVlY2hT
eW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCk7DQotICAgIE5TVUludGVnZXIgY291bnQgPSBb
KF9fYnJpZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0KCkgY291bnRdOw0KLSAgICBm
b3IgKE5TVUludGVnZXIgayA9IDA7IGsgPCBjb3VudDsgaysrKSB7DQotICAgICAgICBOU1N0cmlu
ZyAqdm9pY2VOYW1lID0gWyhfX2JyaWRnZSBOU0FycmF5ICopYXZhaWxhYmxlVm9pY2VzLmdldCgp
IG9iamVjdEF0SW5kZXg6a107DQotICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBb
TlNTcGVlY2hTeW50aGVzaXplciBhdHRyaWJ1dGVzRm9yVm9pY2U6dm9pY2VOYW1lXTsNCi0NCi0g
ICAgICAgIE5TU3RyaW5nICp2b2ljZVVSSSA9IFthdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1Zv
aWNlSWRlbnRpZmllcl07DQotICAgICAgICBOU1N0cmluZyAqbmFtZSA9IFthdHRyaWJ1dGVzIG9i
amVjdEZvcktleTpOU1ZvaWNlTmFtZV07DQotICAgICAgICBOU1N0cmluZyAqbGFuZ3VhZ2UgPSBb
YXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUxvY2FsZUlkZW50aWZpZXJdOw0KLSAgICAg
ICAgYXV0byBkZWZhdWx0Vm9pY2VVUkkgPSBzcGVlY2hTeW50aGVzaXNHZXREZWZhdWx0Vm9pY2VJ
ZGVudGlmaWVyRm9yTG9jYWxlKGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxvY10gaW5pdFdpdGhMb2Nh
bGVJZGVudGlmaWVyOmxhbmd1YWdlXSkuZ2V0KCkpOw0KLQ0KLSAgICAgICAgLy8gQ2hhbmdlIHRv
IEJDUC00NyBmb3JtYXQgYXMgZGVmaW5lZCBieSBzcGVjLg0KLSAgICAgICAgbGFuZ3VhZ2UgPSBb
bGFuZ3VhZ2Ugc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09mU3RyaW5nOkAiXyIgd2l0aFN0
cmluZzpAIi0iXTsNCi0NCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0ID0gWyhfX2JyaWRnZSBOU1N0
cmluZyAqKWRlZmF1bHRWb2ljZVVSSS5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkldOw0K
LQ0KLSAgICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2U6OmNyZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlzRGVmYXVsdCkpOw0K
LSAgICB9DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cGF1c2UoKQ0K
LXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHBhdXNlXTsNCi19DQotDQotdm9pZCBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyIHJlc3VtZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcjo6c3BlYWsoUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiYmIHV0
dGVyYW5jZSkNCi17DQotICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIpDQotICAgICAg
ICBtX3BsYXRmb3JtU3BlZWNoV3JhcHBlciA9IGFkb3B0TlMoW1tXZWJTcGVlY2hTeW50aGVzaXNX
cmFwcGVyIGFsbG9jXSBpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOnRoaXNdKTsNCi0NCi0gICAg
W21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHNwZWFrVXR0ZXJhbmNlOnV0dGVyYW5jZS5nZXQoKV07
DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y2FuY2VsKCkNCi17DQot
ICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KLX0NCi0NCi12b2lkIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCi0N
Ci0jZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442038</attachid>
            <date>2021-10-21 09:07:02 -0700</date>
            <delta_ts>2021-11-27 13:37:19 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>36136</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cN
CmluZGV4IDBkN2I2ZDU0ZDRlZS4uN2VlNWIxYmQ3ZWI0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEzIEBA
DQorMjAyMS0xMC0yMCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0K
KyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3Ig
TWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kcmVzIEdvbnphbGV6Lg0KKw0KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1I
YXZlLmg6DQorDQogMjAyMS0xMC0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+DQogDQogICAgICAgICBbR0xJQl0gU2ltcGxpZnkgU2xlZXBEaXNhYmxlciBieSBj
aGVja2luZyBpZiB3ZSBhcmUgdW5kZXIgc2FuZGJveA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCmluZGV4
IDkwMDdlNmU2ZTdhZS4uMDRhNTk0NDQ2OGQ5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgNCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oDQpAQCAt
NzU5LDcgKzc1OSw3IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIChQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTQwMzAwDQorI2lmICgoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTQwMzAwKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTIwMDAw
KQ0KICNpZiAhZGVmaW5lZChIQVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNFKQ0KICNk
ZWZpbmUgSEFWRV9BVlNQRUVDSFNZTlRIRVNJU19TWVNURU1WT0lDRSAxDQogI2VuZGlmDQpAQCAt
NzcxLDEyICs3NzEsNiBAQA0KICNlbmRpZg0KICNlbmRpZg0KIA0KLSNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwDQotI2lmICFkZWZp
bmVkKEhBVkVfU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0jZGVmaW5lIEhBVkVfU1BF
RUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSAxDQotI2VuZGlmDQotI2VuZGlmDQotDQogI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBkZWZpbmVkKF9faGFzX2F0dHJpYnV0ZSkNCiAjaWYg
X19oYXNfYXR0cmlidXRlKG9iamNfZGlyZWN0KSAmJiAoIVBMQVRGT1JNKE1BQykgfHwgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApDQogI2lmICFkZWZpbmVkKEhBVkVf
TlNfRElSRUNUX1NVUFBPUlQpDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCA3ZmQ3YjAxY2MzYmIuLmI0ZTk3ZGRi
ZTQ2OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDQwIEBADQorMjAyMS0xMC0xOCAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNw
ZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVzIEdv
bnphbGV6Lg0KKw0KKyAgICAgICAgQVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBz
dXBwb3J0ZWQgb24gbWFjT1MgZm9yIGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0
byB1bmlmeSBwbGF0Zm9ybSB1c2FnZS4NCisNCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoN
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOg0KKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW06IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcklPUy5tbS4NCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hS
YXRlKToNCisgICAgICAgIChnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKToN
CisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgaW5pdFdpdGhTcGVlY2hTeW50
aGVzaXplcjpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgbWFwU3Bl
ZWNoUmF0ZVRvUGxhdGZvcm1SYXRlOl0pOg0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lz
V3JhcHBlciBzcGVha1V0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNp
c1dyYXBwZXIgcGF1c2VdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIg
cmVzdW1lXSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIGNhbmNlbF0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRTdGFydFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkRmluaXNoU3BlZWNoVXR0ZXJhbmNlOl0p
Og0KKyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXpl
cjpkaWRQYXVzZVNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5bnRo
ZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6ZGlkQ29udGludWVTcGVlY2hVdHRlcmFuY2U6
XSk6DQorICAgICAgICAoLVtXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIHNwZWVjaFN5bnRoZXNp
emVyOmRpZENhbmNlbFNwZWVjaFV0dGVyYW5jZTpdKToNCisgICAgICAgICgtW1dlYlNwZWVjaFN5
bnRoZXNpc1dyYXBwZXIgc3BlZWNoU3ludGhlc2l6ZXI6d2lsbFNwZWFrUmFuZ2VPZlNwZWVjaFN0
cmluZzp1dHRlcmFuY2U6XSk6DQorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcik6DQorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOg0K
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVW
b2ljZUxpc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6
OnBhdXNlKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpy
ZXN1bWUpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnNw
ZWFrKToNCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5j
ZWwpOg0KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0
U3RhdGUpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1hYy5tbTogUmVtb3ZlZC4NCisNCiAyMDIxLTEwLTE4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+DQogDQogICAgICAgICBDb2NvYSBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCBzaG91bGQgbm90IHVzZSBXZWJHTExheWVyDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cNCmluZGV4IDM2Mjhj
ZDM2ZDRiMS4uMmFkNjQ0OWIxOWY2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NyBAQA0KKzIwMjEtMTAtMTggIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IEFuZHJlcyBHb256YWxlei4NCisNCisgICAgICAgICogUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6DQorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oOg0KKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06
DQorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmg6DQorICAgICAg
ICAqIHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oOiBSZW1vdmVkLg0KKw0KIDIwMjEt
MTAtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEJ1
ZyAyMzE4ODI6IFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0VENDSWRlbnRp
dHkoKSBsZWFrcyBhIHRjY19pZGVudGl0eV90DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQppbmRleCBjNmRhNjAwNWQwYjguLjBjYTMzZWRk
NmViNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvag0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qDQpAQCAtMTY5LDcgKzE2OSw2IEBADQogCQlBMTA4MjZGOTFGNTc2MjkyMDA0Nzcy
QUMgLyogV2ViUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICovOyB9Ow0KIAkJ
QTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tICovOyB9Ow0KIAkJQTEwODI2RkUxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3Jh
cGhpY3NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi87IH07DQotCQlB
MTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0ODFGNkFGRjhFMDBD
NEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi87IH07DQogCQlBMTE3NUI0QjFGNkIyRDdF
MDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87
IH07DQogCQlBMTE3NUI0RTFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QzFGNkIzMzczMDBD
NEI5RjAgLyogUG9wdXBNZW51LmggKi87IH07DQogCQlBMTE3NUI0RjFGNkIzMzczMDBDNEI5RjAg
LyogUG9wdXBNZW51Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLzsgfTsNCkBA
IC0zOTYsNyArMzk1LDYgQEANCiAJCUExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KIAkJQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlB
MTA4MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOU0dyYXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBMTE3NUI0
ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFN5bnRoZXNpc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTEx
NzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0Nl
bGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjRDMUY2QjMzNzMw
MEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9w
dXBNZW51Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9wdXBNZW51Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KQEAgLTY0Myw3ICs2NDEsNiBAQA0KIAkJCQkwQzc3ODU4NDFGNDUx
MzBGMDBGNEVCQjYgLyogTlNXaW5kb3dTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAw
RjRFQkI2IC8qIFBJUFNQSS5oICovLA0KIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyog
UXVpY2tMb29rTWFjU1BJLmggKi8sDQotCQkJCUExMTc1QjQ4MUY2QUZGOEUwMEM0QjlGMCAvKiBT
cGVlY2hTeW50aGVzaXNTUEkuaCAqLywNCiAJCQkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8q
IFN5c3RlbVByZXZpZXdTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8q
IFRlbGVwaG9ueVV0aWxpdGllc1NQSS5oICovLA0KIAkJCSk7DQpAQCAtMTAxMiw3ICsxMDA5LDYg
QEANCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVycyAq
LywNCiAJCQkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggaW4g
SGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5o
IGluIEhlYWRlcnMgKi8sDQotCQkJCUExMTc1QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hT
eW50aGVzaXNTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkwQzVBRjkyMTFGNDNBNEM3MDAyRUFD
MDIgLyogU1FMaXRlM1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTcxQjExNDIwMjY4MjNBQ0Qw
MDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJMzEzMDhC
MTQyMEEyMTcwNTAwM0ZCOTI5IC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaA0KaW5kZXggOWRiOWFmOGY3ZWMxLi5hNzM3MDk3N2JkYzggMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgNCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KQEAgLTc2
LDYgKzc2LDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlN0cmVhbVNlc3Np
b24pDQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFE
RVIoUEFMLCBBVkF1ZGlvU2Vzc2lvbikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUws
IEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZP
Uk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFN5bnRo
ZXNpc1ZvaWNlKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50
aGVzaXplcikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJh
bmNlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLm1tDQppbmRleCBkMjFkNDljZDc3MDIuLmJkNmViYmNiOTkxMyAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0N
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
bW0NCkBAIC0xMDIsNiArMTAyLDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbiwgUEFMX0UNCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb24sIFBBTF9FWFBPUlQpDQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGVy
c2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCwgUEFMX0VYUE9SVCkNCisjZW5kaWYNCisNCisjaWYg
UExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2lzVm9pY2UsIFBBTF9FWFBPUlQpDQog
U09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWU3BlZWNoU3ludGhlc2l6ZXIsIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoVXR0ZXJhbmNlLCBQ
QUxfRVhQT1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FYU3BlZWNoTWFuYWdlclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVhTcGVlY2hNYW5hZ2VyU1BJLmgNCmluZGV4IGZlY2YxMGNlYTNiZi4uMDQ2OGJhOTFiYTUzIDEw
MDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5h
Z2VyU1BJLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNo
TWFuYWdlclNQSS5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNwcmFnbWEgb25jZQ0KIA0KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNpZiBQTEFURk9STShDT0NPQSkNCiANCiAvLyBGSVhN
RTogVW5kbyB3aGVuIGlzU3lzdGVtVm9pY2UgaXMgYXZhaWxhYmxlIGluIGFsbCBTREtzLg0KICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAwDQpAQCAtNDIsNSArNDIsNSBAQA0KIA0KICNl
bmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQ0KIA0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQ0KKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkNCiANCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmgNCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYjkyOTc4MmJlYjBjLi4wMDAwMDAwMDAwMDANCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KKysr
IC9kZXYvbnVsbA0KQEAgLTEsNDMgKzAsMCBAQA0KLS8qDQotICogQ29weXJpZ2h0IChDKSAyMDE3
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
DQotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zDQotICogYXJlIG1ldDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4N
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0K
LSAqDQotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJw0KLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMNCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YNCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpDQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRg0KLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4NCi0gKi8NCi0NCi0jcHJhZ21hIG9uY2UNCi0NCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykNCi0NCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZp
Y2VzUHJpdi5oPg0KLQ0KLSNlbmRpZg0KLQ0KLVdURl9FWFRFUk5fQ19CRUdJTg0KLQ0KLUNGQXJy
YXlSZWYgQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoQ0ZUeXBlUmVmIG1vZGUpOw0K
LSNpZiBIQVZFKFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotQ0ZTdHJpbmdSZWYgQ29w
eUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJh
eVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZWxzZQ0KLUNGU3RyaW5nUmVmIEdldElkZW50
aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2
b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZW5kaWYNCi0NCi1XVEZfRVhURVJOX0NfRU5EDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQNCmluZGV4IGY2MzQ1MzJlMTdjMC4uYTM0ZjIyYTg3NjZlIDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dA0KQEAgLTI1NSw2ICsyNTUsNyBAQCBwbGF0Zm9ybS9jb2Nv
YS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3Rl
Ym9hcmRDb2NvYS5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2Eu
bW0NCiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbQ0KK3BsYXRmb3Jt
L2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSBAbm8tdW5pZnkNCiBwbGF0
Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQ0KIHBsYXRmb3Jt
L2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0NCiBwbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21t
YW5kTGlzdGVuZXJDb2NvYS5tbQ0KQEAgLTQzOCw3ICs0MzksNiBAQCBwbGF0Zm9ybS9pb3MvUGFz
dGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBA
bm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tDQogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tDQotcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0Lm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVy
dGVySU9TLm1tDQogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQ0KQEAgLTQ4NSw3ICs0ODUsNiBA
QCBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZFdyaXRlci5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMu
bW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0NCi1wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWMubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vbWFjL1BsdWdpbkJsb2NrbGlz
dC5tbQ0KIHBsYXRmb3JtL21hYy9Qb3dlck9ic2VydmVyTWFjLmNwcA0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5kZXggMjFjYjczZGU3
ZDg2Li4yNDY4ZmE3NDFmNzUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KQEAgLTM3MjEsNyArMzcyMSw3IEBADQogCQlBOUQyNDgw
MTBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ3RkQwRDc1N0U2OTAwRkRGOTU5IC8q
IEpTRE9NUGx1Z2luQXJyYXkuaCAqLzsgfTsNCiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAv
KiBKU0RPTU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOUQyNDgwMzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9
Ow0KIAkJQTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1
N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9Ow0KLQkJQUExMkRGNDkx
NzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5QkND
MDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLzsgfTsNCisJCUFB
MTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2Eu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1
RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICov
OyB9Ow0KIAkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMDk3OEVF
MEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsNCiAJCUFBMkE1QUNFMTZBNDg1RkQwMDk3
NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpc1ZvaWNlLmggKi87IH07DQogCQlBQTJBNUFEMDE2QTQ4NjA0MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlLmggKi87IH07DQpAQCAtNzMyNiw3ICs3MzI2LDYgQEANCiAJCTI5RDdCQ0Y5MTQ0
NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFMDRBMjdCRUQyRjgxRjk4RTkwMjJCIC8qIEpTQmVmb3Jl
VW5sb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCZWZvcmVV
bmxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFNEQ4REYxNkIw
OTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KLQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJ
MjlGQUY0QjUxOTVBQjA4OTAwQTUyMkRDIC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRVbmRvSW5zZXJ0aW9uTWFya3Vw
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMDI2Q0I2NkVEMDAz
QkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0tleXdv
cmRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMjI2Q0I2
NkVEMDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NLZXl3b3JkVmFsdWUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTEzNjQ3LDcgKzEzNjQ2LDcgQEAN
CiAJCUFBREVGRTQzMjVBRjRGQ0IwMDQwREQ2NyAvKiBGb2N1c09wdGlvbnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9jdXNPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUUy
N0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzUx
NkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAw
QzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQorCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFGNUI3QjExNTI0QjRCRDAwMDRDQjQ5IC8qIFdl
YlNvY2tldEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlNvY2tldEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI1
MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUIyM0EzMjYwOUJCQTdEMDAwNjdDQzUz
IC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9Ow0KQEAgLTIyNDEzLDcgKzIyNDEyLDYgQEANCiAJCQkJQkNBQTQ4NkQxNEEwNTI1MzAwODhG
QUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tICovLA0KIAkJCQlDNUY3NjVCQTE0RTFF
Q0Y0MDA2Qzg5OUIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tICovLA0KIAkJCQlCQzk0RDEw
NzBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sDQotCQkJCTI5RTRE
OEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICov
LA0KIAkJCQlDREEyOUExNTFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjLmggKi8sDQogCQkJCUNEQTI5QTE0MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VNYWMubW0gKi8sDQogCQkJCTFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAv
KiBQbHVnaW5CbG9ja2xpc3QuaCAqLywNCkBAIC0yNTA4Miw3ICsyNTA4MCw2IEBADQogCQkJCTI2
NjAxRUJFMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSAqLywN
CiAJCQkJQzUyNzhCMEIxN0YyMTJFQTAwM0EyOTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5t
bSAqLywNCiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9T
Lm1tICovLA0KLQkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcklPUy5tbSAqLywNCiAJCQkJQ0RBMjlBMkUxQ0JGNzNGQzAwOTAxQ0NGIC8qIFBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmggKi8sDQogCQkJCUNEQTI5QTJGMUNCRjczRkMw
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSAqLywNCiAJCQkJQTFD
MTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXJJT1MubW0gKi8sDQpAQCAt
MjUyNDEsNiArMjUyMzgsNyBAQA0KIAkJCQk5QkVEMkNBRjFGN0NDMDYyMDA2NjYwMTggLyogUGFz
dGVib2FyZENvY29hLm1tICovLA0KIAkJCQlGNEZCMzUwMDIzNTBDOTYyMDBGMDA5NEEgLyogUGFz
dGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLywNCiAJCQkJRjQ2MjhBOUUyMzREM0JCRjAwQkM4
ODRDIC8qIFBsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tICovLA0KKwkJCQlBQUUzNzU1RDE3NDI5
QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovLA0KIAkJ
CQk1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8sDQogCQkJCUNE
QTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbC5oICovLA0KIAkJ
CQlDREEyOUEwRDFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaCAqLywNCkBAIC0zNjk1Miw3ICszNjk1MCw3IEBADQogCQkJCTFBNTY5RDFBMEQ3RTJC
ODIwMDdDMzk4MyAvKiBvYmpjX3V0aWxpdHkubW0gaW4gU291cmNlcyAqLywNCiAJCQkJRTE2OTgy
NjAxMTM0NjM2QTAwODk0MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8s
DQogCQkJCUNFQTI4NDY2MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlP
Uy5tbSBpbiBTb3VyY2VzICovLA0KLQkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLA0KKwkJCQlBQTEyREY0
OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sDQogCQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VBVktpdC5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDREEyOUExNjFDQkRB
NTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sDQogCQkJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1t
DQpzaW1pbGFyaXR5IGluZGV4IDkyJQ0KcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCnJlbmFtZSB0byBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0N
CmluZGV4IDU4NTgyNDQ2YmI0Ni4uYjA4NmI4MWNkNzM0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
b2NvYS5tbQ0KQEAgLTI1LDExICsyNSwxNyBAQA0KICNpbXBvcnQgImNvbmZpZy5oIg0KICNpbXBv
cnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCiANCi0jaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCiANCiAjaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIg0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCINCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisNCisj
aWYgX19oYXNfaW5jbHVkZSg8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4pDQorI2ltcG9y
dCA8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisjZWxzZQ0KKyNpbXBvcnQgPEFWRm91
bmRhdGlvbi9BVkZvdW5kYXRpb24uaD4NCisjZW5kaWYNCisNCiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL0FYU3BlZWNoTWFuYWdlclNQSS5oPg0KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRp
b25zLmg+DQogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPg0KQEAgLTYzLDggKzY5LDcgQEAgc3Rh
dGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICNkZWZp
bmUgQVZTcGVlY2hVdHRlcmFuY2VEZWZhdWx0U3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5j
ZURlZmF1bHRTcGVlY2hSYXRlKCkNCiAjZGVmaW5lIEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNw
ZWVjaFJhdGUgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogDQotQGlu
dGVyZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8QVZTcGVlY2hTeW50
aGVzaXplckRlbGVnYXRlPg0KLXsNCitAaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBw
ZXIgOiBOU09iamVjdDxBVlNwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+IHsNCiAgICAgV2ViQ29y
ZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCiAgICAg
Ly8gSG9sZCBhIFJlZiB0byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFy
IHVudGlsIHRoZSBzeW50aCBpcyBkb25lIHdpdGggaXQuDQogICAgIFJlZlB0cjxXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gbV91dHRlcmFuY2U7DQpAQCAtMTkxLDEw
ICsxOTYsMTAgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVj
aFJhdGUoKQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFu
Y2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFr
aW5nIGpvYiBpbW1lZGlhdGVseS4NCi0gICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3Rl
Y3RlZFV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KICAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7
DQogDQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2lu
ZygqcGxhdGZvcm1VdHRlcmFuY2UpOw0KKyAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQo
KS0+ZGlkRmluaXNoU3BlYWtpbmcoKnByb3RlY3RlZFV0dGVyYW5jZSk7DQogfQ0KIA0KIC0gKHZv
aWQpc3BlZWNoU3ludGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBk
aWRQYXVzZVNwZWVjaFV0dGVyYW5jZTooQVZTcGVlY2hVdHRlcmFuY2UgKil1dHRlcmFuY2UNCkBA
IC0yMjUsMTAgKzIzMCwxMCBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhp
bXVtU3BlZWNoUmF0ZSgpDQogICAgICAgICByZXR1cm47DQogDQogICAgIC8vIENsZWFyIHRoZSBt
X3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBu
ZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFu
Y2U7DQorICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZT4gcHJvdGVjdGVkVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQogICAgIG1fdXR0ZXJhbmNlID0g
bnVsbHB0cjsNCiANCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlz
aFNwZWFraW5nKCpwbGF0Zm9ybVV0dGVyYW5jZSk7DQorICAgIG1fc3ludGhlc2l6ZXJPYmplY3Qt
PmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqcHJvdGVjdGVkVXR0ZXJhbmNlKTsNCiB9DQog
DQogLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRo
ZXNpemVyIHdpbGxTcGVha1JhbmdlT2ZTcGVlY2hTdHJpbmc6KE5TUmFuZ2UpY2hhcmFjdGVyUmFu
Z2UgdXR0ZXJhbmNlOihBVlNwZWVjaFV0dGVyYW5jZSAqKXV0dGVyYW5jZQ0KQEAgLTIzOSw3ICsy
NDQsNyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0
ZSgpDQogICAgIGlmICghbV91dHRlcmFuY2UpDQogICAgICAgICByZXR1cm47DQogDQotICAgIC8v
IGlPUyBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCisgICAgLy8gQVZTcGVlY2hTeW50
aGVzaXplciBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCiAgICAgbV9zeW50aGVzaXpl
ck9iamVjdC0+Y2xpZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdl
YkNvcmU6OlNwZWVjaEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdl
LmxvY2F0aW9uKTsNCiB9DQogDQpAQCAtMjc1LDcgKzI4MCw5IEBAIHZvaWQgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcjo6aW5pdGlhbGl6ZVZvaWNlTGlzdCgpDQogICAgICAgICAgICAgaW5jbHVk
ZVZvaWNlID0gdm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURl
ZmF1bHQ7DQogICAgICAgICBpZiAoaW5jbHVkZVZvaWNlKQ0KICNlbHNlDQotICAgICAgICBpZiAo
dm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQpDQor
ICAgICAgICAvLyBBVlNwZWVjaFN5bnRoZXNpcyBvbiBtYWNPUyBkb2VzIG5vdCBzdXBwb3J0IHF1
YWxpdHkgcHJvcGVydHkgY29ycmVjdGx5Lg0KKyAgICAgICAgaWYgKHZvaWNlLnF1YWxpdHkgPT0g
QVZTcGVlY2hTeW50aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0DQorICAgICAgICAgICAgfHwgKFRB
UkdFVF9PU19PU1ggJiYgIVt2b2ljZVVSSSBoYXNTdWZmaXg6QCJwcmVtaXVtIl0pKQ0KICNlbmRp
Zg0KICAgICAgICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1ZvaWNlOjpjcmVhdGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQp
KTsNCiAgICAgfQ0KQEAgLTMxMiw0ICszMTksNCBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXI6OnJlc2V0U3RhdGUoKQ0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5k
aWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQor
I2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTWFjLm1tDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGZhNzQ2
NWZmNzU5Yi4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMjg5
ICswLDAgQEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0g
KiBhcmUgbWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQotICoNCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkNCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQ0KLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUg0KLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SDQotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsDQotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LA0KLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUg0KLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkNCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UNCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLg0KLSAqLw0KLQ0KLSNpbXBvcnQgImNvbmZpZy5oIg0KLSNpbXBv
cnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCi0NCi0jaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCi0NCi0jaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2UuaCINCi0jaW1wb3J0IDxBcHBLaXQvTlNTcGVlY2hTeW50aGVzaXplci5oPg0KLSNpbXBvcnQg
PHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oPg0KLSNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4NCi0NCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgOiBOU09iamVj
dDxOU1NwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KLSAgICBXZWJDb3JlOjpQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KLSAgICAvLyBIb2xkIGEg
UmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBlYXIgdW50aWwgdGhl
IHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UqIG1fdXR0ZXJhbmNlOw0KLQ0KLSAgICBSZXRhaW5QdHI8TlNTcGVlY2hT
eW50aGVzaXplcj4gbV9zeW50aGVzaXplcjsNCi0gICAgZmxvYXQgbV9iYXNlUGl0Y2g7DQotfQ0K
LQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0V2l0aFNwZWVjaFN5bnRoZXNp
emVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXI7DQot
LSAodm9pZClzcGVha1V0dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UgKil1dHRlcmFuY2U7DQotDQotQGVuZA0KLQ0KLUBpbXBsZW1lbnRhdGlvbiBXZWJT
cGVlY2hTeW50aGVzaXNXcmFwcGVyDQotDQotLSAoV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciAq
KWluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIgKilzeW50aGVzaXplcg0KLXsNCi0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
DQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0ID0gc3lu
dGhlc2l6ZXI7DQotICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZvclN5bnRoZXNpemVyXTsNCi0g
ICAgcmV0dXJuIHNlbGY7DQotfQ0KLQ0KLS8vIE5TU3BlZWNoU3ludGhlc2l6ZXIgZXhwZWN0cyBh
IFdvcmRzIHBlciBNaW51dGUgKFdQTSkgcmF0ZS4gVGhlcmUgaXMgbm8gcHJlc2V0IGRlZmF1bHQN
Ci0vLyBidXQgdGhleSByZWNvbW1lbmQgdGhhdCBub3JtYWwgc3BlYWtpbmcgaXMgMTgwLTIyMCBX
UE0NCi0tIChmbG9hdCljb252ZXJ0UmF0ZVRvV1BNOihmbG9hdClyYXRlDQotew0KLSAgICAvLyBX
ZSdsbCBzYXkgMjAwIFdQTSBpcyB0aGUgZGVmYXVsdCAxeCB2YWx1ZS4NCi0gICAgcmV0dXJuIDIw
MC4wZiAqIHJhdGU7DQotfQ0KLQ0KLS0gKGZsb2F0KWNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1
ZTooZmxvYXQpcGl0Y2gNCi17DQotICAgIC8vIFRoaXMgYWxsb3dzIHRoZSBiYXNlIHBpdGNoIHRv
IHJhbmdlIGZyb20gMCUgLSAyMDAlIG9mIHRoZSBub3JtYWwgcGl0Y2guDQotICAgIHJldHVybiBt
X2Jhc2VQaXRjaCAqIHBpdGNoOw0KLX0NCi0NCi0tICh2b2lkKXVwZGF0ZUJhc2VQaXRjaEZvclN5
bnRoZXNpemVyDQotew0KLSAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBj
aGFuZ2Ugdm9pY2VzLCBzaW5jZSB0aGUgYmFzZSBwaXRjaCBpcyBkaWZmZXJlbnQgZm9yIGVhY2gg
dm9pY2UuDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpuaWwgZm9yUHJvcGVydHk6TlNT
cGVlY2hSZXNldFByb3BlcnR5IGVycm9yOm5pbF07DQotICAgIG1fYmFzZVBpdGNoID0gW1ttX3N5
bnRoZXNpemVyIG9iamVjdEZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hCYXNlUHJvcGVydHkgZXJy
b3I6bmlsXSBmbG9hdFZhbHVlXTsNCi19DQotDQotLSAodm9pZClzcGVha1V0dGVyYW5jZTooV2Vi
Q29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgKil1dHRlcmFuY2UNCi17DQot
ICAgIC8vIFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3QgaGF2ZSBhbiBleGlzdGlu
ZyBzcGVlY2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0KLSAgICBBU1NFUlQoIW1fdXR0ZXJhbmNl
KTsNCi0gICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQotICAgIGlmICghbV9zeW50aGVzaXplcikg
ew0KLSAgICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1tOU1NwZWVjaFN5bnRoZXNpemVy
IGFsbG9jXSBpbml0V2l0aFZvaWNlOm5pbF0pOw0KLSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0
RGVsZWdhdGU6c2VsZl07DQotICAgIH0NCi0NCi0gICAgLy8gRmluZCBpZiB3ZSBzaG91bGQgdXNl
IGEgc3BlY2lmaWMgdm9pY2UgYmFzZWQgb24gdGhlIHZvaWNlVVJJIGluIHV0dGVyYW5jZS4NCi0g
ICAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSB2b2ljZSB0aGF0IG1hdGNoZXMgdGhlIGxhbmd1YWdl
LiBUaGUgTWFjIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgdm9pY2UgcGVyIGxhbmd1YWdlLCBzbyB0
aGUgZmlyc3QNCi0gICAgLy8gb25lIHdpbGwgaGF2ZSB0byBkby4NCi0NCi0gICAgV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZSogdXR0ZXJhbmNlVm9pY2UgPSB1dHRlcmFuY2Ut
PnZvaWNlKCk7DQotICAgIC8vIElmIG5vIHZvaWNlIHdhcyBzcGVjaWZpZWQsIHRyeSB0byBtYXRj
aCBieSBsYW5ndWFnZS4NCi0gICAgaWYgKCF1dHRlcmFuY2VWb2ljZSAmJiAhdXR0ZXJhbmNlLT5s
YW5nKCkuaXNFbXB0eSgpKSB7DQotICAgICAgICBmb3IgKGF1dG8mIHZvaWNlIDogbV9zeW50aGVz
aXplck9iamVjdC0+dm9pY2VMaXN0KCkpIHsNCi0gICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZSh1dHRlcmFuY2UtPmxhbmcoKSwgdm9pY2UtPmxhbmcoKSkpIHsNCi0gICAgICAg
ICAgICAgICAgdXR0ZXJhbmNlVm9pY2UgPSB2b2ljZS5nZXQoKTsNCi0gICAgICAgICAgICAgICAg
aWYgKHZvaWNlLT5pc0RlZmF1bHQoKSkNCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KLSAg
ICAgICAgICAgIH0NCi0gICAgICAgIH0NCi0gICAgfQ0KLQ0KLSAgICBOU1N0cmluZyAqdm9pY2VV
UkkgPSBuaWw7DQotICAgIGlmICh1dHRlcmFuY2VWb2ljZSkNCi0gICAgICAgIHZvaWNlVVJJID0g
dXR0ZXJhbmNlVm9pY2UtPnZvaWNlVVJJKCk7DQotICAgIGVsc2UNCi0gICAgICAgIHZvaWNlVVJJ
ID0gW05TU3BlZWNoU3ludGhlc2l6ZXIgZGVmYXVsdFZvaWNlXTsNCi0NCi0gICAgLy8gRG9uJ3Qg
c2V0IHRoZSB2b2ljZSB1bmxlc3MgbmVjZXNzYXJ5LiBUaGVyZSdzIGEgYnVnIGluIE5TU3BlZWNo
U3ludGhlc2l6ZXIgc3VjaCB0aGF0DQotICAgIC8vIHNldHRpbmcgdGhlIHZvaWNlIGZvciB0aGUg
Zmlyc3QgdGltZSB3aWxsIGNhdXNlIHRoZSBmaXJzdCBzcGVlY2hEb25lIGNhbGxiYWNrIHRvIHJl
cG9ydCBpdCB3YXMgdW5zdWNjZXNzZnVsLg0KLSAgICBCT09MIHVwZGF0ZVBpdGNoID0gTk87DQot
ICAgIGlmICghW1ttX3N5bnRoZXNpemVyIHZvaWNlXSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkld
KSB7DQotICAgICAgICBbbV9zeW50aGVzaXplciBzZXRWb2ljZTp2b2ljZVVSSV07DQotICAgICAg
ICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBjaGFuZ2Ugdm9pY2VzLg0KLSAg
ICAgICAgdXBkYXRlUGl0Y2ggPSBZRVM7DQotICAgIH0NCi0NCi0gICAgaWYgKG1fYmFzZVBpdGNo
ID09IDAgfHwgdXBkYXRlUGl0Y2gpDQotICAgICAgICBbc2VsZiB1cGRhdGVCYXNlUGl0Y2hGb3JT
eW50aGVzaXplcl07DQotDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpbTlNOdW1iZXIg
bnVtYmVyV2l0aEZsb2F0OltzZWxmIGNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1ZTp1dHRlcmFu
Y2UtPnBpdGNoKCldXSBmb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IGVycm9y
Om5pbF07DQotICAgIFttX3N5bnRoZXNpemVyIHNldFJhdGU6W3NlbGYgY29udmVydFJhdGVUb1dQ
TTp1dHRlcmFuY2UtPnJhdGUoKV1dOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXRWb2x1bWU6dXR0
ZXJhbmNlLT52b2x1bWUoKV07DQotDQotICAgIG1fdXR0ZXJhbmNlID0gdXR0ZXJhbmNlOw0KLSAg
ICBbbV9zeW50aGVzaXplciBzdGFydFNwZWFraW5nU3RyaW5nOnV0dGVyYW5jZS0+dGV4dCgpXTsN
Ci0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcoKm1f
dXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZClwYXVzZQ0KLXsNCi0gICAgaWYgKCFtX3V0dGVy
YW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgcGF1c2VTcGVh
a2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotICAgIG1fc3ludGhl
c2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRQYXVzZVNwZWFraW5nKCptX3V0dGVyYW5jZSk7DQot
fQ0KLQ0KLS0gKHZvaWQpcmVzdW1lDQotew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAg
ICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBjb250aW51ZVNwZWFraW5nXTsNCi0g
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFJlc3VtZVNwZWFraW5nKCptX3V0
dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpY2FuY2VsDQotew0KLSAgICBpZiAoIW1fdXR0ZXJh
bmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBzdG9wU3BlYWtp
bmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAgICBtX3N5bnRoZXNp
emVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVkKCptX3V0dGVyYW5jZSk7
DQotICAgIG1fdXR0ZXJhbmNlID0gMDsNCi19DQotDQotLSAodm9pZClpbnZhbGlkYXRlDQotew0K
LSAgICBtX3V0dGVyYW5jZSA9IDA7DQotICAgIFttX3N5bnRoZXNpemVyIHNldERlbGVnYXRlOm5p
bF07DQotICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVha2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJ
bW1lZGlhdGVCb3VuZGFyeV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KE5T
U3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgZGlkRmluaXNoU3BlYWtpbmc6KEJPT0wpZmluaXNo
ZWRTcGVha2luZw0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsN
Ci0NCi0gICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7DQotDQotICAgIC8vIENsZWFyIHRoZSBtX3V0
dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcg
c3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQotICAgIG1fdXR0ZXJh
bmNlID0gMDsNCi0NCi0gICAgaWYgKGZpbmlzaGVkU3BlYWtpbmcpDQotICAgICAgICBtX3N5bnRo
ZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnV0dGVyYW5jZSk7DQot
ICAgIGVsc2UNCi0gICAgICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5zcGVha2lu
Z0Vycm9yT2NjdXJyZWQoKnV0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhl
c2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgd2lsbFNwZWFrV29yZDooTlNSYW5n
ZSljaGFyYWN0ZXJSYW5nZSBvZlN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcNCi17DQotICAgIFVO
VVNFRF9QQVJBTShzZW5kZXIpOw0KLSAgICBVTlVTRURfUEFSQU0oc3RyaW5nKTsNCi0NCi0gICAg
aWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgLy8gTWFjIHBsYXRm
b3JtIG9ubHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KLSAgICBtX3N5bnRoZXNpemVyT2Jq
ZWN0LT5jbGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVyYW5jZSwgV2ViQ29y
ZTo6U3BlZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFjdGVyUmFuZ2UubG9j
YXRpb24pOw0KLX0NCi0NCi1AZW5kDQotDQotbmFtZXNwYWNlIFdlYkNvcmUgew0KLQ0KLVBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KQ0KLSAgICA6IG1fc3BlZWNoU3ludGhlc2l6
ZXJDbGllbnQoY2xpZW50KQ0KLXsNCi19DQotDQotUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6
flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hX
cmFwcGVyIGludmFsaWRhdGVdOw0KLX0NCi0NCi1zdGF0aWMgUmV0YWluUHRyPENGQXJyYXlSZWY+
IHNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKQ0KLXsNCi0gICAgLy8gR2V0IGFs
bCB0aGUgdm9pY2VzIG9mZmVyZWQgYnkgVFRTLg0KLSAgICAvLyBCeSBkZWZhdWx0IHNwZWVjaCBv
bmx5IHJldHVybnMgInByZW1pdW0iIHZvaWNlcywgd2hpY2ggZG9lcyBub3QgaW5jbHVkZSBhbGwg
dGhlDQotICAgIC8vIGludGVybmF0aW9uYWwgdm9pY2VzLiBUaGlzIGFsbG93cyB1cyB0byBvZmZl
ciBzcGVlY2ggc3ludGhlc2lzIGZvciBhbGwgc3VwcG9ydGVkIGxhbmd1YWdlcy4NCi0gICAgcmV0
dXJuIGFkb3B0Q0YoQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoKF9fYnJpZGdlIENG
QXJyYXlSZWYpQFsgQCJWb2ljZUdyb3VwRGVmYXVsdCIsIEAiVm9pY2VHcm91cENvbXBhY3QiIF0p
KTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3BlZWNoU3ludGhlc2lz
R2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZShOU0xvY2FsZSAqdXNlckxvY2FsZSkN
Ci17DQotICAgIGlmICghdXNlckxvY2FsZSkNCi0gICAgICAgIHJldHVybiBuaWw7DQotDQotI2lm
IEhBVkUoU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0gICAgcmV0dXJuIGFkb3B0Q0Yo
Q29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoc3Bl
ZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAoX19icmlkZ2UgQ0ZMb2Nh
bGVSZWYpdXNlckxvY2FsZSkpOw0KLSNlbHNlDQotICAgIHJldHVybiBHZXRJZGVudGlmaWVyU3Ry
aW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5bnRoZXNpc0dldFZv
aWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVmKXVzZXJMb2NhbGUp
Ow0KLSNlbmRpZg0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRp
YWxpemVWb2ljZUxpc3QoKQ0KLXsNCi0gICAgYXV0byBhdmFpbGFibGVWb2ljZXMgPSBzcGVlY2hT
eW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCk7DQotICAgIE5TVUludGVnZXIgY291bnQgPSBb
KF9fYnJpZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0KCkgY291bnRdOw0KLSAgICBm
b3IgKE5TVUludGVnZXIgayA9IDA7IGsgPCBjb3VudDsgaysrKSB7DQotICAgICAgICBOU1N0cmlu
ZyAqdm9pY2VOYW1lID0gWyhfX2JyaWRnZSBOU0FycmF5ICopYXZhaWxhYmxlVm9pY2VzLmdldCgp
IG9iamVjdEF0SW5kZXg6a107DQotICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBb
TlNTcGVlY2hTeW50aGVzaXplciBhdHRyaWJ1dGVzRm9yVm9pY2U6dm9pY2VOYW1lXTsNCi0NCi0g
ICAgICAgIE5TU3RyaW5nICp2b2ljZVVSSSA9IFthdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1Zv
aWNlSWRlbnRpZmllcl07DQotICAgICAgICBOU1N0cmluZyAqbmFtZSA9IFthdHRyaWJ1dGVzIG9i
amVjdEZvcktleTpOU1ZvaWNlTmFtZV07DQotICAgICAgICBOU1N0cmluZyAqbGFuZ3VhZ2UgPSBb
YXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUxvY2FsZUlkZW50aWZpZXJdOw0KLSAgICAg
ICAgYXV0byBkZWZhdWx0Vm9pY2VVUkkgPSBzcGVlY2hTeW50aGVzaXNHZXREZWZhdWx0Vm9pY2VJ
ZGVudGlmaWVyRm9yTG9jYWxlKGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxvY10gaW5pdFdpdGhMb2Nh
bGVJZGVudGlmaWVyOmxhbmd1YWdlXSkuZ2V0KCkpOw0KLQ0KLSAgICAgICAgLy8gQ2hhbmdlIHRv
IEJDUC00NyBmb3JtYXQgYXMgZGVmaW5lZCBieSBzcGVjLg0KLSAgICAgICAgbGFuZ3VhZ2UgPSBb
bGFuZ3VhZ2Ugc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09mU3RyaW5nOkAiXyIgd2l0aFN0
cmluZzpAIi0iXTsNCi0NCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0ID0gWyhfX2JyaWRnZSBOU1N0
cmluZyAqKWRlZmF1bHRWb2ljZVVSSS5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkldOw0K
LQ0KLSAgICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2U6OmNyZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlzRGVmYXVsdCkpOw0K
LSAgICB9DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cGF1c2UoKQ0K
LXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHBhdXNlXTsNCi19DQotDQotdm9pZCBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyIHJlc3VtZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcjo6c3BlYWsoUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiYmIHV0
dGVyYW5jZSkNCi17DQotICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIpDQotICAgICAg
ICBtX3BsYXRmb3JtU3BlZWNoV3JhcHBlciA9IGFkb3B0TlMoW1tXZWJTcGVlY2hTeW50aGVzaXNX
cmFwcGVyIGFsbG9jXSBpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOnRoaXNdKTsNCi0NCi0gICAg
W21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHNwZWFrVXR0ZXJhbmNlOnV0dGVyYW5jZS5nZXQoKV07
DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y2FuY2VsKCkNCi17DQot
ICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KLX0NCi0NCi12b2lkIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCi0N
Ci0jZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445221</attachid>
            <date>2021-11-27 13:37:19 -0800</date>
            <delta_ts>2021-11-27 13:40:01 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>51395</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMjI2YTY1OGJmNDUwLi45NGNjMTQ1ZmFjMmYgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NSBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBmYXN0L3NwZWVj
aHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50
eHQ6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoNCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6DQorDQogMjAyMS0xMS0yMyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+DQogDQogICAgICAgICBDU1A6
IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb24gZXZlbnQgaXMgYWx3YXlzIHVzaW5nIGRvY3VtZW50
IGFzIHRhcmdldA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHkt
c3RyaW5nLWV4cGVjdGVkLnR4dA0KaW5kZXggMGEwM2ZmOTJjYTYyLi42Nzc4ZWI2MWFjZTQgMTAw
NjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhl
c2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50eHQNCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4
cGVjdGVkLnR4dA0KQEAgLTUsNiArNSw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFDQogDQog
UEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgZmFsc2UNCiBQQVNTIGV2ZW50LmVsYXBz
ZWRUaW1lID4gMCBpcyB0cnVlDQorUEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgdHJ1
ZQ0KK1BBU1MgZXZlbnQuZWxhcHNlZFRpbWUgPiAwIGlzIHRydWUNCiBQQVNTIHNwZWVjaFN5bnRo
ZXNpcy5zcGVha2luZyBpcyBmYWxzZQ0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUN
CiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZw0KaW5kZXggNWEyMGE3MWYzZDY4Li4yODY3
ZTQ0Y2I4MTEgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
DQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEz
IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0K
Kw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBm
b3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQu
dHh0Og0KKw0KIDIwMjEtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPg0KIA0KICAgICAgICAgQ1NQOiBzZWN1cml0eSBwb2xpY3kgdmlvbGF0aW9uIGV2ZW50
IGlzIGFsd2F5cyB1c2luZyBkb2N1bWVudCBhcyB0YXJnZXQNCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3lu
dGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2
ZW50cy1leHBlY3RlZC50eHQNCmluZGV4IGRjOTFhOGIxYTYxMy4uMjg0YTcyYTEyOTUzIDEwMDY0
NA0KLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVl
Y2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQudHh0DQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3Bl
ZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQNCkBAIC0xLDQgKzEsNCBAQA0K
IA0KLUZBSUwgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVuZCBldmVu
dHMgd2l0aCBlbXB0eSB1dHRlcmFuY2UgYXNzZXJ0X3RydWU6IE5vdCBleHBlY3RpbmcgZXZlbnQs
IGJ1dCBnb3QgZW5kIGV2ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlDQorUEFTUyBzcGVlY2hT
eW50aGVzaXMuc3BlYWsoKSBmaXJlcyBzdGFydCBhbmQgZW5kIGV2ZW50cyB3aXRoIGVtcHR5IHV0
dGVyYW5jZQ0KIFBBU1Mgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVu
ZCBldmVudHMNCiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGQ2Y2VkODYwZGYxYS4uNTRhNDg3YTAxZGJkIDEwMDY0NA0KLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zDQorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC0xMjA4LDkgKzEyMDgs
NiBAQCB3ZWJraXQub3JnL2IvMTc5Nzk2IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNr
LWNhY2hlLXZhbGlkYXRpb24tYmFjay1uYXZpZw0KICMgPHJkYXI6Ly9wcm9ibGVtLzY0NzAwNjU4
PiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2lk
bGhhcm5lc3MuaHR0cHMuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQgYW5kIGZsYWt5IGZhaWx1cmUN
CiBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0N
CiANCi0jIHJkYXI6Ly82NjcwMTgxNSAoUkVHUkVTU0lPTiAoMjBBMjMyMWEtMjBBMjM0OGIpOiBm
YXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy5o
dG1sIGlzIGEgZmxha3kgZmFpbHVyZSkNCi1bIEJpZ1N1cisgXSBmYXN0L3NwZWVjaHN5bnRoZXNp
cy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0NCi0NCiAjIHJkYXI6Ly82NjcwMzc3MyAoUkVHUkVTU0lPTiAoMjBBMjMxNi0yMEEyMzQ4Yik6
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbi1ibG9ja2Vk
LWluLWFib3V0LWJsYW5rLXdpbmRvdy5odG1sIGlzIGEgY29uc3RhbnQgZmFpbHVyZSkNCiBbIGFy
bTY0IF0gaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2luLWJs
b2NrZWQtaW4tYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgWyBTa2lwIF0NCiANCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zDQppbmRleCA2ZGQ0NzFjZTRhZTMuLjU3ZDMz
ZjQzNzViNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucw0K
QEAgLTIwMzIsMTAgKzIwMzIsNiBAQCB3ZWJraXQub3JnL2IvMjE3NjQxIFsgRGVidWcgXSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9ldmVudC10aW1lb3V0Lg0KIA0KIHdlYmtp
dC5vcmcvYi8yMTc2MjAgaW5zcGVjdG9yL2F1ZGl0L2Jhc2ljLWFzeW5jLmh0bWwgWyBQYXNzIFRp
bWVvdXQgXQ0KIA0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9T
cGVlY2hTeW50aGVzaXMtc3BlYWstdHdpY2UuaHRtbCBbIFNraXAgXQ0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hTeW50aGVzaXMtc3BlYWstd2l0aG91
dC1hY3RpdmF0aW9uLWZhaWxzLnRlbnRhdGl2ZS5odG1sIFsgU2tpcCBdDQotd2Via2l0Lm9yZy9i
LzIyNzUwMSBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gt
YXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMuaHRtbCBbIFNraXAgXQ0KLQ0KIHdlYmtp
dC5vcmcvYi8yMTc2NjkgaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLXNw
aW5uaW5nLW1lc3NhZ2UuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdDQogDQogd2Via2l0Lm9y
Zy9iLzIxNzk5NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRw
dXQtY2hhbm5lbC1jb3VudC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0NCkBAIC0yMzAyLDgg
KzIyOTgsNiBAQCB3ZWJraXQub3JnL2IvMjI5MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbQ0KIA0KICNyZGFyOi8vODIxNDYzNjcg
KFtNYWMsIGlPUyBSZWxlYXNlXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2xheW91dC13b3JrbGV0LWNzcC5odHRwcy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZSkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9sYXlvdXQtd29ya2xldC1jc3Au
aHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdIA0KIA0KLXdlYmtpdC5vcmcvYi8yMjgzOTYgZmFz
dC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay1lbXB0eS1zdHJpbmcuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdDQotDQogd2Via2l0Lm9yZy9iLzIyODE3NiBbIE1vamF2ZSBDYXRh
bGluYSBCaWdTdXIgXSBmYXN0L3RleHQvdmFyaWFibGUtc3lzdGVtLWZvbnQuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQ0KIHdlYmtpdC5vcmcvYi8yMjgxNzYgWyBNb250ZXJleSBdIGZhc3QvdGV4
dC92YXJpYWJsZS1zeXN0ZW0tZm9udC5odG1sIFsgUGFzcyBdDQogDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KaW5kZXggZWFiM2IyMGRh
NWY0Li5iYWZmZmZiYjk1MzQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTMgQEANCisyMDIxLTExLTI3ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQorICAgICAgICBBWDogVW5p
Znkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdlIGZvciBNYWMvaU9TDQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODk1DQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4NCisNCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOg0KKw0KIDIwMjEt
MTEtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+DQogDQogICAgICAgICBb
TW9kZWxdIGFkZCBhdWRpbyBzdXBwb3J0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaA0KaW5kZXggY2NlYzFl
ZmQxMWQyLi4wMjQ1M2M4YjM0NTIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaA0KKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCkBAIC03NTcsNyAr
NzU3LDcgQEANCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgKFBMQVRGT1JNKElPUykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxNDAzMDANCisjaWYgKChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxNDAzMDApIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPiAxMjAwMDApDQogI2lm
ICFkZWZpbmVkKEhBVkVfQVZTUEVFQ0hTWU5USEVTSVNfU1lTVEVNVk9JQ0UpDQogI2RlZmluZSBI
QVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNFIDENCiAjZW5kaWYNCkBAIC03NjksMTIg
Kzc2OSw2IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDANCi0jaWYgIWRlZmluZWQoSEFW
RV9TUEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLSNkZWZpbmUgSEFWRV9TUEVFQ0hTWU5U
SEVTSVNfTU9OVEVSRVlfU1BJIDENCi0jZW5kaWYNCi0jZW5kaWYNCi0NCiAjaWYgQ09NUElMRVIo
R0NDX0NPTVBBVElCTEUpICYmIGRlZmluZWQoX19oYXNfYXR0cmlidXRlKQ0KICNpZiBfX2hhc19h
dHRyaWJ1dGUob2JqY19kaXJlY3QpICYmICghUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkNCiAjaWYgIWRlZmluZWQoSEFWRV9OU19ESVJF
Q1RfU1VQUE9SVCkNCkBAIC0xMDk3LDMgKzEwOTEsNyBAQA0KICNpZiBQTEFURk9STShNQUMpDQog
I2RlZmluZSBIQVZFX1NDRU5FS0lUIDENCiAjZW5kaWYNCisNCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApDQorI2RlZmluZSBI
QVZFX1VOSUZJRURfU1BFRUNIU1lOVEhFU0lTX0ZJWF9GT1JfODE0NjUxNjQgMQ0KKyNlbmRpZg0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggODUzN2ZmNzgxZTJlLi44ZGY0NDgxMGVhMDQgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0K
QEAgLTEsMyArMSwzMCBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNo
QGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxh
dGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3
OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
QVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBzdXBwb3J0ZWQgb24gbWFjT1MgZm9y
IGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0byB1bmlmeSBwbGF0Zm9ybSB1c2Fn
ZS4NCisgICAgICAgIEZpeCBhIG51bWJlciBvZiB0ZXN0cyB0aGF0IGhhZCBiZWVuIG1hcmtlZCBm
YWlsaW5nL2ZsYWt5IHJlbGF0ZWQgdG8gc3BlZWNoIHN5bnRoZXNpcy4NCisNCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6U3BlZWNo
U3ludGhlc2lzKToNCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnN0YXJ0U3Bl
YWtpbmdJbW1lZGlhdGVseSk6DQorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpz
cGVhayk6DQorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6DQorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoNCisgICAgICAgICogcGFnZS9TcGVlY2hTeW50aGVz
aXNDbGllbnQuaDoNCisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5oOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6dmFyaWF0aW9uQXhlcyk6DQorICAgICAgICAqIHBs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tOiBSZW1vdmVkLg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbTogUmVt
b3ZlZC4NCisgICAgICAgICogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplckNvY29hLm1tOiBBZGRlZC4NCisNCiAyMDIxLTExLTIzICBDYW1lcm9u
IE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+DQogDQogICAgICAgICBSZW1vdmUgdW5uZWNl
c3NhcnkgZXhwbGljaXQgaW5pdGlhbGl6ZXJfbGlzdCB1c2FnZQ0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwDQppbmRleCAxMmM2ODM5ZGRi
YTQuLmVhZjNhMmUxZTc5OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHANCkBAIC01OSw4ICs1OSwxMCBAQCBTcGVlY2hTeW50aGVz
aXM6OlNwZWVjaFN5bnRoZXNpcyhXZWFrUHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gY2xpZW50
LCBEb2N1bWVudA0KICAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOw0KICNlbmRpZg0KIA0KLSAg
ICBpZiAobV9zcGVlY2hTeW50aGVzaXNDbGllbnQpDQorICAgIGlmIChtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudCkgew0KICAgICAgICAgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQtPnNldE9ic2VydmVy
KCp0aGlzKTsNCisgICAgICAgIG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50LT5yZXNldFN0YXRlKCk7
DQorICAgIH0NCiB9DQogDQogdm9pZCBTcGVlY2hTeW50aGVzaXM6OnNldFBsYXRmb3JtU3ludGhl
c2l6ZXIoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+IHN5bnRoZXNp
emVyKQ0KQEAgLTEyMiwxMiArMTI0LDYgQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6OnN0YXJ0U3Bl
YWtpbmdJbW1lZGlhdGVseShTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmIHV0dGVyYW4NCiAgICAg
bV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlID0gJnV0dGVyYW5jZTsNCiAgICAgbV9pc1BhdXNlZCA9
IGZhbHNlOw0KIA0KLSAgICAvLyBaZXJvIGxlbmd0aGVkIHN0cmluZ3Mgc2hvdWxkIGltbWVkaWF0
ZWx5IG5vdGlmeSB0aGF0IHRoZSBldmVudCBpcyBjb21wbGV0ZS4NCi0gICAgaWYgKHV0dGVyYW5j
ZS50ZXh0KCkuaXNFbXB0eSgpKSB7DQotICAgICAgICBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZCh1
dHRlcmFuY2UsIGZhbHNlKTsNCi0gICAgICAgIHJldHVybjsNCi0gICAgfQ0KLQ0KICAgICBpZiAo
bV9zcGVlY2hTeW50aGVzaXNDbGllbnQpDQogICAgICAgICBtX3NwZWVjaFN5bnRoZXNpc0NsaWVu
dC0+c3BlYWsodXR0ZXJhbmNlLnBsYXRmb3JtVXR0ZXJhbmNlKCkpOw0KICAgICBlbHNlDQpAQCAt
MTQ1LDcgKzE0MSw2IEBAIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpzcGVhayhTcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UmIHV0dGVyYW5jZSkNCiAjZW5kaWYNCiANCiAgICAgbV91dHRlcmFuY2VRdWV1
ZS5hcHBlbmQodXR0ZXJhbmNlKTsNCi0NCiAgICAgLy8gSWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSwg
c3BlYWsgdGhpcyBpbW1lZGlhdGVseSBhbmQgYWRkIGl0IHRvIHRoZSBxdWV1ZS4NCiAgICAgaWYg
KG1fdXR0ZXJhbmNlUXVldWUuc2l6ZSgpID09IDEpDQogICAgICAgICBzdGFydFNwZWFraW5nSW1t
ZWRpYXRlbHkobV91dHRlcmFuY2VRdWV1ZS5maXJzdCgpKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KaW5k
ZXggZTcyZGJmZDI3MTBkLi42NTYyNTZlZmQ0YjggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQpAQCAt
MSwzICsxLDE3IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBw
bGUuY29tPg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9y
bSB1c2FnZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0K
Kw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIFBB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOg0KKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaDoNCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rLm1tOg0KKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oOg0K
KyAgICAgICAgKiBwYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaDogUmVtb3ZlZC4NCisN
CiAyMDIxLTExLTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+DQog
DQogICAgICAgICBbV2ViR1BVXSBVc2UgT3B0aW9uU2V0IHdoZXJlIGl0IG1ha2VzIHNlbnNlIHRv
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
DQppbmRleCBhZTY5OTc1ZmJiYjYuLmJjMzVkOGM2MWJiMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQpAQCAtMzIzLDcgKzMyMyw2
IEBADQogCQlBMTA4MjZGOTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgyNkY3MUY1NzYyOTIwMDQ3
NzJBQyAvKiBXZWJQYW5lbC5oICovOyB9Ow0KIAkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovOyB9Ow0KIAkJQTEw
ODI2RkUxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAv
KiBOU0dyYXBoaWNzU1BJLmggKi87IH07DQotCQlBMTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyog
U3BlZWNoU3ludGhlc2lzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJ
LmggKi87IH07DQogCQlBMTE3NUI0QjFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIy
RDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07DQogCQlBMTE3NUI0RTFGNkIzMzczMDBD
NEI5RjAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTE3NUI0QzFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggKi87IH07
DQogCQlBMTE3NUI0RjFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNEQxRjZCMzM3MzAwQzRC
OUYwIC8qIFBvcHVwTWVudS5tbSAqLzsgfTsNCkBAIC03MjgsNyArNzI3LDYgQEANCiAJCUExMDgy
NkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYW5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTEwODI2RjgxRjU3NjI5MjAwNDc3
MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGFuZWwubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTA4MjZGRDFGNThBNDMzMDA0NzcyQUMgLyog
TlNHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0dyYXBoaWNzU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNo
U3ludGhlc2lzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFN5bnRoZXNpc1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5T
Q2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsNCiAJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlB
MTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUG9wdXBNZW51Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTk3OCw3
ICs5NzYsNiBAQA0KIAkJCQkwQzc3ODU4NDFGNDUxMzBGMDBGNEVCQjYgLyogTlNXaW5kb3dTUEku
aCAqLywNCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAwRjRFQkI2IC8qIFBJUFNQSS5oICovLA0KIAkJ
CQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVpY2tMb29rTWFjU1BJLmggKi8sDQotCQkJ
CUExMTc1QjQ4MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCAqLywNCiAJ
CQkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCAqLywNCiAJ
CQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRlbGVwaG9ueVV0aWxpdGllc1NQSS5oICov
LA0KIAkJCSk7DQpAQCAtMTU0OSw3ICsxNTQ2LDYgQEANCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAw
Njc5NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQkUyNTgyMUNCNjAw
MTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQzIy
NTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oIGluIEhlYWRlcnMgKi8sDQotCQkJCUExMTc1
QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCBpbiBIZWFkZXJzICov
LA0KIAkJCQkwQzVBRjkyMTFGNDNBNEM3MDAyRUFDMDIgLyogU1FMaXRlM1NQSS5oIGluIEhlYWRl
cnMgKi8sDQogCQkJCTcxQjExNDIwMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJ
LmggaW4gSGVhZGVycyAqLywNCiAJCQkJMzEzMDhCMTQyMEEyMTcwNTAwM0ZCOTI5IC8qIFN5c3Rl
bVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KaW5kZXggOWRiOWFmOGY3ZWMxLi5h
NzM3MDk3N2JkYzggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaA0KQEAgLTc2LDYgKzc2LDkgQEAgU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBBVlN0cmVhbVNlc3Npb24pDQogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVkF1ZGlvU2Vzc2lvbikNCiBT
T0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVx
dWVzdCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlKQ0KIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXplcikNCiBTT0ZUX0xJTktfQ0xBU1Nf
Rk9SX0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJhbmNlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tDQppbmRleCBkMjFkNDlj
ZDc3MDIuLmJkNmViYmNiOTkxMyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0NCkBAIC0xMDIsNiArMTAyLDkgQEAgU09G
VF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFW
U3RyZWFtU2Vzc2lvbiwgUEFMX0UNCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJ
TktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRp
b1Nlc3Npb24sIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCwg
UEFMX0VYUE9SVCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5L
X0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNo
U3ludGhlc2lzVm9pY2UsIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2l6ZXIsIFBBTF9F
WFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZv
dW5kYXRpb24sIEFWU3BlZWNoVXR0ZXJhbmNlLCBQQUxfRVhQT1JUKQ0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmgNCmluZGV4
IGZlY2YxMGNlYTNiZi4uMDQ2OGJhOTFiYTUzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmgNCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oDQpAQCAtMjUsNyArMjUs
NyBAQA0KIA0KICNwcmFnbWEgb25jZQ0KIA0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNp
ZiBQTEFURk9STShDT0NPQSkNCiANCiAvLyBGSVhNRTogVW5kbyB3aGVuIGlzU3lzdGVtVm9pY2Ug
aXMgYXZhaWxhYmxlIGluIGFsbCBTREtzLg0KICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAm
JiAwDQpAQCAtNDIsNSArNDIsNSBAQA0KIA0KICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQ0KIA0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkNCiANCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9t
YWMvU3BlZWNoU3ludGhlc2lzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMv
U3BlZWNoU3ludGhlc2lzU1BJLmgNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYjky
OTc4MmJlYjBjLi4wMDAwMDAwMDAwMDANCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNDMgKzAsMCBA
QA0KLS8qDQotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotICogYXJlIG1l
dDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSAqDQotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJw0KLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLA0KLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMNCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SDQotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YNCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTg0KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpDQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRg0K
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCi0gKi8NCi0NCi0jcHJhZ21hIG9u
Y2UNCi0NCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCi0NCi0jaW5jbHVkZSA8QXBwbGlj
YXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzUHJpdi5oPg0KLQ0KLSNlbmRpZg0KLQ0K
LVdURl9FWFRFUk5fQ19CRUdJTg0KLQ0KLUNGQXJyYXlSZWYgQ29weVNwZWVjaFN5bnRoZXNpc1Zv
aWNlc0Zvck1vZGUoQ0ZUeXBlUmVmIG1vZGUpOw0KLSNpZiBIQVZFKFNQRUVDSFNZTlRIRVNJU19N
T05URVJFWV9TUEkpDQotQ0ZTdHJpbmdSZWYgQ29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJy
ZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsN
Ci0jZWxzZQ0KLUNGU3RyaW5nUmVmIEdldElkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2lj
ZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZW5k
aWYNCi0NCi1XVEZfRVhURVJOX0NfRU5EDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQNCmluZGV4IDFh
NDY2ODZmNzhjZC4uM2FhMmU2MjNlMGM2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dA0KKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KQEAg
LTI1OSw2ICsyNTksNyBAQCBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZp
bHRlci5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQ0KIHBsYXRmb3JtL2Nv
Y29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0NCiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9y
bVBhc3RlYm9hcmRDb2NvYS5tbQ0KK3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJDb2NvYS5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIu
bW0NCiBwbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21tYW5kTGlzdGVuZXJDb2NvYS5tbQ0KQEAgLTQ0
MSw3ICs0NDIsNiBAQCBwbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lv
cy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUGxh
dGZvcm1QYXN0ZWJvYXJkSU9TLm1tDQogcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1t
DQotcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gQG5vLXVuaWZ5
DQogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIEBuby11bmlm
eQ0KIHBsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVydGVySU9TLm1tDQogcGxhdGZvcm0vaW9zL1F1
aWNrTG9vay5tbQ0KQEAgLTQ4OCw3ICs0ODgsNiBAQCBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZFdy
aXRlci5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQ0KIHBsYXRm
b3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1T
Y3JlZW5NYWMubW0NCi1wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5t
bQ0KIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gQG5vLXVuaWZ5
DQogcGxhdGZvcm0vbWFjL1BsdWdpbkJsb2NrbGlzdC5tbQ0KIHBsYXRmb3JtL21hYy9Qb3dlck9i
c2VydmVyTWFjLmNwcA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvag0KaW5kZXggMjg2YzkzNDliMTIyLi4wYzkwYjhmZGM1NjkgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oNCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KQEAg
LTM3MDMsNyArMzcwMyw3IEBADQogCQlBOUQyNDgwMTBENzU3RTY5MDBGREY5NTkgLyogSlNET01Q
bHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTlEMjQ3RkQwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCAqLzsgfTsN
CiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwMzBENzU3RTdEMDBG
REY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9Ow0KIAkJQTlEMjQ4MDkwRDc1N0U3RDAwRkRG
OTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5
cGVBcnJheS5oICovOyB9Ow0KLQkJQUExMkRGNDkxNzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcklPUy5tbSAqLzsgfTsNCisJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovOyB9Ow0KIAkJQUEyMUVDQ0QwQUJGMEZDNjAw
MkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMDk3OEVFMEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJz
b3JJbWFnZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsNCiAJCUFBMkE1QUNFMTZBNDg1RkQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2lj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVB
QzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi87IH07DQogCQlB
QTJBNUFEMDE2QTQ4NjA0MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4
NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggKi87IH07DQpAQCAtNzU3
Niw3ICs3NTc2LDYgQEANCiAJCTI5RDdCQ0Y5MTQ0NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmls
aXR5U3BpbkJ1dHRvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5U3BpbkJ1dHRvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFMDRB
MjdCRUQyRjgxRjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCZWZvcmVVbmxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9Ow0KIAkJMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KLQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0
NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlGQUY0QjUxOTVBQjA4OTAwQTUyMkRDIC8q
IFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07DQogCQkyQTQxMDdBMDI2Q0I2NkVEMDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0tleXdvcmRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMjI2Q0I2NkVEMDAzQkY3OTcgLyogQ1NTS2V5d29yZFZh
bHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBDU1NLZXl3b3JkVmFsdWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9Ow0KQEAgLTEzOTM3LDcgKzEzOTM2LDcgQEANCiAJCUFBREVGRTQzMjVBRjRGQ0IwMDQwREQ2
NyAvKiBGb2N1c09wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9jdXNPcHRpb25zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzUxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07DQotCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQor
CQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJ
QUFGNUI3QjExNTI0QjRCRDAwMDRDQjQ5IC8qIFdlYlNvY2tldEZyYW1lLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldEZyYW1lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI1MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVU
ZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KIAkJQUIyM0EzMjYwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTIzMDA4LDcgKzIzMDA3LDYg
QEANCiAJCQkJQkNBQTQ4NkQxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLm1tICovLA0KIAkJCQlDNUY3NjVCQTE0RTFFQ0Y0MDA2Qzg5OUIgLyogUGxhdGZvcm1QYXN0
ZWJvYXJkTWFjLm1tICovLA0KIAkJCQlCQzk0RDEwNzBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZv
cm1TY3JlZW5NYWMubW0gKi8sDQotCQkJCTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICovLA0KIAkJCQlDREEyOUExNTFDQkRBNTZDMDA5
MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmggKi8sDQogCQkJCUNEQTI5QTE0
MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gKi8sDQog
CQkJCTFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAvKiBQbHVnaW5CbG9ja2xpc3QuaCAqLywNCkBA
IC0yNTcwNSw3ICsyNTcwMyw2IEBADQogCQkJCTI2NjAxRUJFMTRCM0I5QUQwMDEyQzBGRSAvKiBQ
bGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSAqLywNCiAJCQkJQzUyNzhCMEIxN0YyMTJFQTAwM0Ey
OTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbSAqLywNCiAJCQkJRTQ1MzkwMzIwRUFGRDYz
NzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9TLm1tICovLA0KLQkJCQlBQUUzNzU1RDE3NDI5
QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLywNCiAJCQkJ
Q0RBMjlBMkUxQ0JGNzNGQzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0
LmggKi8sDQogCQkJCUNEQTI5QTJGMUNCRjczRkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VBVktpdC5tbSAqLywNCiAJCQkJQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFBy
ZXZpZXdDb252ZXJ0ZXJJT1MubW0gKi8sDQpAQCAtMjU4NjQsNiArMjU4NjEsNyBAQA0KIAkJCQk5
QkVEMkNBRjFGN0NDMDYyMDA2NjYwMTggLyogUGFzdGVib2FyZENvY29hLm1tICovLA0KIAkJCQlG
NEZCMzUwMDIzNTBDOTYyMDBGMDA5NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAq
LywNCiAJCQkJRjQ2MjhBOUUyMzREM0JCRjAwQkM4ODRDIC8qIFBsYXRmb3JtUGFzdGVib2FyZENv
Y29hLm1tICovLA0KKwkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplckNvY29hLm1tICovLA0KIAkJCQk1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMg
LyogUGxhdGZvcm1WaWV3LmggKi8sDQogCQkJCTk1QkE0RkFCMjZEOTgxQUEwMDJBMEU2MiAvKiBQ
bGF0Zm9ybVZpZXdDb250cm9sbGVyLmggKi8sDQogCQkJCUNEQTI5QTBBMUNCRDlBNzQwMDkwMUND
RiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbC5oICovLA0KQEAgLTM3NTg3LDcgKzM3NTg1LDcgQEAN
CiAJCQkJMUE1NjlEMUEwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamNfdXRpbGl0eS5tbSBpbiBTb3Vy
Y2VzICovLA0KIAkJCQlFMTY5ODI2MDExMzQ2MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmpl
Y3QubW0gaW4gU291cmNlcyAqLywNCiAJCQkJQ0VBMjg0NjYyMTQxRTg0OTAwRTQwN0U4IC8qIFBs
YXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGluIFNvdXJjZXMgKi8sDQotCQkJCUFBMTJERjQ5MTc0
M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJj
ZXMgKi8sDQorCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyQ29jb2EubW0gaW4gU291cmNlcyAqLywNCiAJCQkJQ0RBMjlBMzAxQ0JGNzRENDAw
OTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8s
DQogCQkJCUNEQTI5QTE2MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VNYWMubW0gaW4gU291cmNlcyAqLywNCiAJCQkJNDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNGIC8q
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCmluZGV4IGY4YmU0NjJh
MmUxZi4uNDAzMjlhZDA0YWUyIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVl
Y2hTeW50aGVzaXNDbGllbnQuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hTeW50
aGVzaXNDbGllbnQuaA0KQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsKCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSA9IDA7DQogICAgIHZp
cnR1YWwgdm9pZCByZXN1bWUoKSA9IDA7DQorICAgIHZpcnR1YWwgdm9pZCByZXNldFN0YXRlKCkg
PSAwOw0KIA0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplci5oDQppbmRleCBiNGI4ZDA4YTBjYzMuLjIzYTBmMjkxMjlmMSAx
MDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplci5oDQpAQCAtNzIsOCArNzIsOCBAQCBwdWJsaWM6DQogICAgIHZpcnR1YWwgdm9pZCBw
YXVzZSgpOw0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCk7DQogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWwoKTsNCisgICAgdmlydHVhbCB2b2lkIHJlc2V0U3RhdGUoKTsNCiANCi0gICAgdm9pZCBy
ZXNldFN0YXRlKCk7DQogICAgIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqIGNsaWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ7IH0NCiANCiBwcm90
ZWN0ZWQ6DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0NCnNpbWlsYXJpdHkgaW5kZXggODclDQpy
ZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcklPUy5tbQ0KcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbQ0KaW5kZXggNTg1ODI0NDZiYjQ2Li5lZDk5
ZmVlMmEyNzIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tDQpAQCAtMjUsMTEgKzI1LDE3
IEBADQogI2ltcG9ydCAiY29uZmlnLmgiDQogI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplci5oIg0KIA0KLSNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkNCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKENPQ09B
KQ0KIA0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmgiDQogI2lt
cG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5oIg0KLSNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVlNwZWVjaFN5bnRoZXNpcy5oPg0KKw0KKyNpZiBfX2hhc19pbmNsdWRlKDxBVkZBdWRp
by9BVlNwZWVjaFN5bnRoZXNpcy5oPikNCisjaW1wb3J0IDxBVkZBdWRpby9BVlNwZWVjaFN5bnRo
ZXNpcy5oPg0KKyNlbHNlDQorI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPg0K
KyNlbmRpZg0KKw0KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmg+
DQogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4NCiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+DQpAQCAtNjMsOCArNjksNyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRl
cmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogI2RlZmluZSBBVlNwZWVjaFV0dGVyYW5jZURlZmF1
bHRTcGVlY2hSYXRlIGdldEFWU3BlZWNoVXR0ZXJhbmNlRGVmYXVsdFNwZWVjaFJhdGUoKQ0KICNk
ZWZpbmUgQVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVy
YW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiANCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNp
c1dyYXBwZXIgOiBOU09iamVjdDxBVlNwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KK0Bp
bnRlcmZhY2UgV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciA6IE5TT2JqZWN0PEFWU3BlZWNoU3lu
dGhlc2l6ZXJEZWxlZ2F0ZT4gew0KICAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KICAgICAvLyBIb2xkIGEgUmVmIHRvIHRoZSB1dHRl
cmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBlYXIgdW50aWwgdGhlIHN5bnRoIGlzIGRvbmUg
d2l0aCBpdC4NCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlPiBtX3V0dGVyYW5jZTsNCkBAIC0xMDUsMTYgKzExMCwxNSBAQCBzdGF0aWMgZmxvYXQg
Z2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgIC8vIFdoZW4gc3Bl
YWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3QgaGF2ZSBhbiBleGlzdGluZyBzcGVlY2ggdXR0ZXJh
bmNlIG91dHN0YW5kaW5nLg0KICAgICBBU1NFUlQoIW1fdXR0ZXJhbmNlKTsNCiAgICAgQVNTRVJU
KHV0dGVyYW5jZSk7DQotDQogICAgIGlmICghdXR0ZXJhbmNlKQ0KICAgICAgICAgcmV0dXJuOw0K
LQ0KKyAgICANCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TDQogICAgIGlmICghbV9z
eW50aGVzaXplcikgew0KICAgICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1BBTDo6YWxs
b2NBVlNwZWVjaFN5bnRoZXNpemVySW5zdGFuY2UoKSBpbml0XSk7DQogICAgICAgICBbbV9zeW50
aGVzaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsNCiAgICAgfQ0KLQ0KKyAgICANCiAgICAgLy8gQ2hv
b3NlIHRoZSBiZXN0IHZvaWNlLCBieSBmaXJzdCBsb29raW5nIGF0IHRoZSB1dHRlcmFuY2Ugdm9p
Y2UsIHRoZW4gdGhlIHV0dGVyYW5jZSBsYW5ndWFnZSwNCiAgICAgLy8gdGhlbiBjaG9vc2UgdGhl
IGRlZmF1bHQgbGFuZ3VhZ2UuDQogICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
Vm9pY2UqIHV0dGVyYW5jZVZvaWNlID0gdXR0ZXJhbmNlLT52b2ljZSgpOw0KQEAgLTEzOSw2ICsx
NDMsMTIgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJh
dGUoKQ0KICAgICBbYXZVdHRlcmFuY2Ugc2V0Vm9pY2U6YXZWb2ljZV07DQogICAgIG1fdXR0ZXJh
bmNlID0gV1RGTW92ZSh1dHRlcmFuY2UpOw0KIA0KKyAgICAvLyBtYWNPUyB3b24ndCBzZW5kIGEg
ZGlkIHN0YXJ0IHNwZWFraW5nIGNhbGxiYWNrIGZvciBlbXB0eSBzdHJpbmdzLg0KKyNpZiAhSEFW
RShVTklGSUVEX1NQRUVDSFNZTlRIRVNJU19GSVhfRk9SXzgxNDY1MTY0KQ0KKyAgICBpZiAoIW1f
dXR0ZXJhbmNlLT50ZXh0KCkubGVuZ3RoKCkpDQorICAgICAgICBtX3N5bnRoZXNpemVyT2JqZWN0
LT5jbGllbnQoKS0+ZGlkU3RhcnRTcGVha2luZygqbV91dHRlcmFuY2UpOw0KKyNlbmRpZg0KKw0K
ICAgICBbbV9zeW50aGVzaXplciBzcGVha1V0dGVyYW5jZTphdlV0dGVyYW5jZV07DQogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMNCiB9DQpAQCAtMTYzLDYgKzE3MywxNCBAQCBzdGF0aWMg
ZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMNCiB9DQogDQorLSAodm9pZClyZXNldFN0YXRlDQorew0KKyAg
ICBmcHJpbnRmKHN0ZGVyciwgInJlc2V0IHN0YXRlIVxuIik7DQorICAgIC8vIE9uIGEgcmVzZXQs
IGNhbmNlbCB1dHRlcmFuY2UgYW5kIHNldCB0byBuaWwgaW1tZWRpYXRlbHkgc28gdGhlIG5leHQg
c3BlZWNoIGpvYiBjb250aW51ZXMgd2l0aG91dCB3YWl0aW5nIGZvciBhIGNhbGxiYWNrDQorICAg
IFtzZWxmIGNhbmNlbF07DQorICAgIG1fdXR0ZXJhbmNlID0gbmlsOw0KK30NCisNCiAtICh2b2lk
KWNhbmNlbA0KIHsNCiAgICAgaWYgKCFtX3V0dGVyYW5jZSkNCkBAIC0xOTEsMTAgKzIwOSwxMCBA
QCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQog
ICAgICAgICByZXR1cm47DQogDQogICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJs
ZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGlt
bWVkaWF0ZWx5Lg0KLSAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQorICAgIFJlZlB0cjxX
ZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdGVkVXR0ZXJh
bmNlID0gbV91dHRlcmFuY2U7DQogICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsNCiANCi0gICAg
bV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCpwbGF0Zm9y
bVV0dGVyYW5jZSk7DQorICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5p
c2hTcGVha2luZygqcHJvdGVjdGVkVXR0ZXJhbmNlKTsNCiB9DQogDQogLSAodm9pZClzcGVlY2hT
eW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVyIGRpZFBhdXNlU3Bl
ZWNoVXR0ZXJhbmNlOihBVlNwZWVjaFV0dGVyYW5jZSAqKXV0dGVyYW5jZQ0KQEAgLTIyNSwxMCAr
MjQzLDEwIEBAIHN0YXRpYyBmbG9hdCBnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hS
YXRlKCkNCiAgICAgICAgIHJldHVybjsNCiANCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNl
IHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2lu
ZyBqb2IgaW1tZWRpYXRlbHkuDQotICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZT4gcGxhdGZvcm1VdHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsNCisgICAg
UmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwcm90ZWN0
ZWRVdHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsNCiAgICAgbV91dHRlcmFuY2UgPSBudWxscHRyOw0K
IA0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmco
KnBsYXRmb3JtVXR0ZXJhbmNlKTsNCisgICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCkt
PmRpZEZpbmlzaFNwZWFraW5nKCpwcm90ZWN0ZWRVdHRlcmFuY2UpOw0KIH0NCiANCiAtICh2b2lk
KXNwZWVjaFN5bnRoZXNpemVyOihBVlNwZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXIgd2ls
bFNwZWFrUmFuZ2VPZlNwZWVjaFN0cmluZzooTlNSYW5nZSljaGFyYWN0ZXJSYW5nZSB1dHRlcmFu
Y2U6KEFWU3BlZWNoVXR0ZXJhbmNlICopdXR0ZXJhbmNlDQpAQCAtMjM5LDcgKzI1Nyw3IEBAIHN0
YXRpYyBmbG9hdCBnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiAgICAg
aWYgKCFtX3V0dGVyYW5jZSkNCiAgICAgICAgIHJldHVybjsNCiANCi0gICAgLy8gaU9TIG9ubHkg
c3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KKyAgICAvLyBBVlNwZWVjaFN5bnRoZXNpemVyIG9u
bHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5j
bGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVyYW5jZSwgV2ViQ29yZTo6U3Bl
ZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFjdGVyUmFuZ2UubG9jYXRpb24p
Ow0KIH0NCiANCkBAIC0yNzUsNyArMjkzLDkgQEAgdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyOjppbml0aWFsaXplVm9pY2VMaXN0KCkNCiAgICAgICAgICAgICBpbmNsdWRlVm9pY2UgPSB2
b2ljZS5xdWFsaXR5ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5RGVmYXVsdDsNCiAg
ICAgICAgIGlmIChpbmNsdWRlVm9pY2UpDQogI2Vsc2UNCi0gICAgICAgIGlmICh2b2ljZS5xdWFs
aXR5ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5RGVmYXVsdCkNCisgICAgICAgIC8v
IEFWU3BlZWNoU3ludGhlc2lzIG9uIG1hY09TIGRvZXMgbm90IHN1cHBvcnQgcXVhbGl0eSBwcm9w
ZXJ0eSBjb3JyZWN0bHkuDQorICAgICAgICBpZiAodm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5
bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQNCisgICAgICAgICAgICB8fCAoVEFSR0VUX09TX09T
WCAmJiAhW3ZvaWNlVVJJIGhhc1N1ZmZpeDpAInByZW1pdW0iXSkpDQogI2VuZGlmDQogICAgICAg
ICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U6OmNy
ZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlzRGVmYXVsdCkpOw0KICAgICB9
DQpAQCAtMjk0LDYgKzMxNCw3IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cmVz
dW1lKCkNCiANCiB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnNwZWFrKFJlZlB0cjxQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4mJiB1dHRlcmFuY2UpDQogew0KKyAgICBm
cHJpbnRmKHN0ZGVyciwgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnNwZWFrKFJlZlB0clxu
Iik7DQogICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIpDQogICAgICAgICBtX3BsYXRm
b3JtU3BlZWNoV3JhcHBlciA9IGFkb3B0TlMoW1tXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIGFs
bG9jXSBpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOnRoaXNdKTsNCiANCkBAIC0zMDcsOSArMzI4
LDEwIEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y2FuY2VsKCkNCiANCiB2b2lk
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KIHsNCi0gICAgW21fcGxh
dGZvcm1TcGVlY2hXcmFwcGVyIGNhbmNlbF07DQorICAgIGZwcmludGYoc3RkZXJyLCAicmVzZXQg
c3RhdGVcbiIpOw0KKyAgICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgcmVzZXRTdGF0ZV07DQog
fQ0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5kaWYgLy8gRU5BQkxFKFNQRUVD
SF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2VuZGlmIC8vIEVOQUJMRShT
UEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5j
cHANCmluZGV4IDE3Mjc0YmZjMzQ5ZC4uZDM3M2JhNmI4ZTc0IDEwMDY0NA0KLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHANCkBAIC0zMDIsNiArMzAyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGZvbnROYW1l
SXNTeXN0ZW1Gb250KENGU3RyaW5nUmVmIGZvbnROYW1lKQ0KIA0KIHN0YXRpYyBSZXRhaW5QdHI8
Q0ZBcnJheVJlZj4gdmFyaWF0aW9uQXhlcyhDVEZvbnRSZWYgZm9udCwgU2hvdWxkTG9jYWxpemVB
eGlzTmFtZXMgc2hvdWxkTG9jYWxpemVBeGlzTmFtZXMpDQogew0KKyAgICAvKg0KICNpZiBkZWZp
bmVkKEhBVkVfQ1RGb250Q29weVZhcmlhdGlvbkF4ZXNJbnRlcm5hbCkgLy8gVGhpcyBtYWNybyBp
cyBkZWZpbmVkIGluc2lkZSBDb3JlVGV4dCwgbm90IFdlYktpdC4NCiAgICAgaWYgKHNob3VsZExv
Y2FsaXplQXhpc05hbWVzID09IFNob3VsZExvY2FsaXplQXhpc05hbWVzOjpZZXMpDQogICAgICAg
ICByZXR1cm4gYWRvcHRDRihDVEZvbnRDb3B5VmFyaWF0aW9uQXhlcyhmb250KSk7DQpAQCAtMzA5
LDEwICszMTAsMTAgQEAgc3RhdGljIFJldGFpblB0cjxDRkFycmF5UmVmPiB2YXJpYXRpb25BeGVz
KENURm9udFJlZiBmb250LCBTaG91bGRMb2NhbGl6ZUF4aXNOYW0NCiAjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgaWdub3JlZCAiLVd1bmd1YXJkZWQtYXZhaWxhYmlsaXR5LW5ldyINCiAgICAgcmV0
dXJuIGFkb3B0Q0YoQ1RGb250Q29weVZhcmlhdGlvbkF4ZXNJbnRlcm5hbChmb250KSk7DQogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcA0KLSNlbHNlDQorI2Vsc2UqLw0KICAgICBVTlVTRURf
UEFSQU0oc2hvdWxkTG9jYWxpemVBeGlzTmFtZXMpOw0KICAgICByZXR1cm4gYWRvcHRDRihDVEZv
bnRDb3B5VmFyaWF0aW9uQXhlcyhmb250KSk7DQotI2VuZGlmDQorLy8jZW5kaWYNCiB9DQogDQog
VmFyaWF0aW9uRGVmYXVsdHNNYXAgZGVmYXVsdFZhcmlhdGlvblZhbHVlcyhDVEZvbnRSZWYgZm9u
dCwgU2hvdWxkTG9jYWxpemVBeGlzTmFtZXMgc2hvdWxkTG9jYWxpemVBeGlzTmFtZXMpDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1hYy5tbQ0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCBmYTc0NjVm
Zjc1OWIuLjAwMDAwMDAwMDAwMA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0NCisrKyAvZGV2L251bGwNCkBAIC0xLDI4OSAr
MCwwIEBADQotLyoNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotICog
YXJlIG1ldDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSAqDQotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZDQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUNCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUg0KLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLA0KLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywN
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1INCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZDQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
DQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4NCi0gKi8NCi0NCi0jaW1wb3J0ICJjb25maWcuaCINCi0jaW1wb3J0
ICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgiDQotDQotI2lmIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKSAmJiBQTEFURk9STShNQUMpDQotDQotI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UuaCINCi0jaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNl
LmgiDQotI2ltcG9ydCA8QXBwS2l0L05TU3BlZWNoU3ludGhlc2l6ZXIuaD4NCi0jaW1wb3J0IDxw
YWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaD4NCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+DQotDQotQGludGVyZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8
TlNTcGVlY2hTeW50aGVzaXplckRlbGVnYXRlPg0KLXsNCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCi0gICAgLy8gSG9sZCBhIFJl
ZiB0byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFyIHVudGlsIHRoZSBz
eW50aCBpcyBkb25lIHdpdGggaXQuDQotICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlKiBtX3V0dGVyYW5jZTsNCi0NCi0gICAgUmV0YWluUHRyPE5TU3BlZWNoU3lu
dGhlc2l6ZXI+IG1fc3ludGhlc2l6ZXI7DQotICAgIGZsb2F0IG1fYmFzZVBpdGNoOw0KLX0NCi0N
Ci0tIChXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyICopaW5pdFdpdGhTcGVlY2hTeW50aGVzaXpl
cjooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVyOw0KLS0g
KHZvaWQpc3BlYWtVdHRlcmFuY2U6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlICopdXR0ZXJhbmNlOw0KLQ0KLUBlbmQNCi0NCi1AaW1wbGVtZW50YXRpb24gV2ViU3Bl
ZWNoU3ludGhlc2lzV3JhcHBlcg0KLQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilp
bml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyICopc3ludGhlc2l6ZXINCi17DQotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQ0K
LSAgICAgICAgcmV0dXJuIG5pbDsNCi0NCi0gICAgbV9zeW50aGVzaXplck9iamVjdCA9IHN5bnRo
ZXNpemVyOw0KLSAgICBbc2VsZiB1cGRhdGVCYXNlUGl0Y2hGb3JTeW50aGVzaXplcl07DQotICAg
IHJldHVybiBzZWxmOw0KLX0NCi0NCi0vLyBOU1NwZWVjaFN5bnRoZXNpemVyIGV4cGVjdHMgYSBX
b3JkcyBwZXIgTWludXRlIChXUE0pIHJhdGUuIFRoZXJlIGlzIG5vIHByZXNldCBkZWZhdWx0DQot
Ly8gYnV0IHRoZXkgcmVjb21tZW5kIHRoYXQgbm9ybWFsIHNwZWFraW5nIGlzIDE4MC0yMjAgV1BN
DQotLSAoZmxvYXQpY29udmVydFJhdGVUb1dQTTooZmxvYXQpcmF0ZQ0KLXsNCi0gICAgLy8gV2Un
bGwgc2F5IDIwMCBXUE0gaXMgdGhlIGRlZmF1bHQgMXggdmFsdWUuDQotICAgIHJldHVybiAyMDAu
MGYgKiByYXRlOw0KLX0NCi0NCi0tIChmbG9hdCljb252ZXJ0UGl0Y2hUb05TU3BlZWNoVmFsdWU6
KGZsb2F0KXBpdGNoDQotew0KLSAgICAvLyBUaGlzIGFsbG93cyB0aGUgYmFzZSBwaXRjaCB0byBy
YW5nZSBmcm9tIDAlIC0gMjAwJSBvZiB0aGUgbm9ybWFsIHBpdGNoLg0KLSAgICByZXR1cm4gbV9i
YXNlUGl0Y2ggKiBwaXRjaDsNCi19DQotDQotLSAodm9pZCl1cGRhdGVCYXNlUGl0Y2hGb3JTeW50
aGVzaXplcg0KLXsNCi0gICAgLy8gUmVzZXQgdGhlIGJhc2UgcGl0Y2ggd2hlbmV2ZXIgd2UgY2hh
bmdlIHZvaWNlcywgc2luY2UgdGhlIGJhc2UgcGl0Y2ggaXMgZGlmZmVyZW50IGZvciBlYWNoIHZv
aWNlLg0KLSAgICBbbV9zeW50aGVzaXplciBzZXRPYmplY3Q6bmlsIGZvclByb3BlcnR5Ok5TU3Bl
ZWNoUmVzZXRQcm9wZXJ0eSBlcnJvcjpuaWxdOw0KLSAgICBtX2Jhc2VQaXRjaCA9IFtbbV9zeW50
aGVzaXplciBvYmplY3RGb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IGVycm9y
Om5pbF0gZmxvYXRWYWx1ZV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlYWtVdHRlcmFuY2U6KFdlYkNv
cmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlICopdXR0ZXJhbmNlDQotew0KLSAg
ICAvLyBXaGVuIHNwZWFrIGlzIGNhbGxlZCB3ZSBzaG91bGQgbm90IGhhdmUgYW4gZXhpc3Rpbmcg
c3BlZWNoIHV0dGVyYW5jZSBvdXRzdGFuZGluZy4NCi0gICAgQVNTRVJUKCFtX3V0dGVyYW5jZSk7
DQotICAgIEFTU0VSVCh1dHRlcmFuY2UpOw0KLQ0KLSAgICBpZiAoIW1fc3ludGhlc2l6ZXIpIHsN
Ci0gICAgICAgIG1fc3ludGhlc2l6ZXIgPSBhZG9wdE5TKFtbTlNTcGVlY2hTeW50aGVzaXplciBh
bGxvY10gaW5pdFdpdGhWb2ljZTpuaWxdKTsNCi0gICAgICAgIFttX3N5bnRoZXNpemVyIHNldERl
bGVnYXRlOnNlbGZdOw0KLSAgICB9DQotDQotICAgIC8vIEZpbmQgaWYgd2Ugc2hvdWxkIHVzZSBh
IHNwZWNpZmljIHZvaWNlIGJhc2VkIG9uIHRoZSB2b2ljZVVSSSBpbiB1dHRlcmFuY2UuDQotICAg
IC8vIE90aGVyd2lzZSwgZmluZCB0aGUgdm9pY2UgdGhhdCBtYXRjaGVzIHRoZSBsYW5ndWFnZS4g
VGhlIE1hYyBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZvaWNlIHBlciBsYW5ndWFnZSwgc28gdGhl
IGZpcnN0DQotICAgIC8vIG9uZSB3aWxsIGhhdmUgdG8gZG8uDQotDQotICAgIFdlYkNvcmU6OlBs
YXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UqIHV0dGVyYW5jZVZvaWNlID0gdXR0ZXJhbmNlLT52
b2ljZSgpOw0KLSAgICAvLyBJZiBubyB2b2ljZSB3YXMgc3BlY2lmaWVkLCB0cnkgdG8gbWF0Y2gg
YnkgbGFuZ3VhZ2UuDQotICAgIGlmICghdXR0ZXJhbmNlVm9pY2UgJiYgIXV0dGVyYW5jZS0+bGFu
ZygpLmlzRW1wdHkoKSkgew0KLSAgICAgICAgZm9yIChhdXRvJiB2b2ljZSA6IG1fc3ludGhlc2l6
ZXJPYmplY3QtPnZvaWNlTGlzdCgpKSB7DQotICAgICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UodXR0ZXJhbmNlLT5sYW5nKCksIHZvaWNlLT5sYW5nKCkpKSB7DQotICAgICAgICAg
ICAgICAgIHV0dGVyYW5jZVZvaWNlID0gdm9pY2UuZ2V0KCk7DQotICAgICAgICAgICAgICAgIGlm
ICh2b2ljZS0+aXNEZWZhdWx0KCkpDQotICAgICAgICAgICAgICAgICAgICBicmVhazsNCi0gICAg
ICAgICAgICB9DQotICAgICAgICB9DQotICAgIH0NCi0NCi0gICAgTlNTdHJpbmcgKnZvaWNlVVJJ
ID0gbmlsOw0KLSAgICBpZiAodXR0ZXJhbmNlVm9pY2UpDQotICAgICAgICB2b2ljZVVSSSA9IHV0
dGVyYW5jZVZvaWNlLT52b2ljZVVSSSgpOw0KLSAgICBlbHNlDQotICAgICAgICB2b2ljZVVSSSA9
IFtOU1NwZWVjaFN5bnRoZXNpemVyIGRlZmF1bHRWb2ljZV07DQotDQotICAgIC8vIERvbid0IHNl
dCB0aGUgdm9pY2UgdW5sZXNzIG5lY2Vzc2FyeS4gVGhlcmUncyBhIGJ1ZyBpbiBOU1NwZWVjaFN5
bnRoZXNpemVyIHN1Y2ggdGhhdA0KLSAgICAvLyBzZXR0aW5nIHRoZSB2b2ljZSBmb3IgdGhlIGZp
cnN0IHRpbWUgd2lsbCBjYXVzZSB0aGUgZmlyc3Qgc3BlZWNoRG9uZSBjYWxsYmFjayB0byByZXBv
cnQgaXQgd2FzIHVuc3VjY2Vzc2Z1bC4NCi0gICAgQk9PTCB1cGRhdGVQaXRjaCA9IE5POw0KLSAg
ICBpZiAoIVtbbV9zeW50aGVzaXplciB2b2ljZV0gaXNFcXVhbFRvU3RyaW5nOnZvaWNlVVJJXSkg
ew0KLSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0Vm9pY2U6dm9pY2VVUkldOw0KLSAgICAgICAg
Ly8gUmVzZXQgdGhlIGJhc2UgcGl0Y2ggd2hlbmV2ZXIgd2UgY2hhbmdlIHZvaWNlcy4NCi0gICAg
ICAgIHVwZGF0ZVBpdGNoID0gWUVTOw0KLSAgICB9DQotDQotICAgIGlmIChtX2Jhc2VQaXRjaCA9
PSAwIHx8IHVwZGF0ZVBpdGNoKQ0KLSAgICAgICAgW3NlbGYgdXBkYXRlQmFzZVBpdGNoRm9yU3lu
dGhlc2l6ZXJdOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBzZXRPYmplY3Q6W05TTnVtYmVyIG51
bWJlcldpdGhGbG9hdDpbc2VsZiBjb252ZXJ0UGl0Y2hUb05TU3BlZWNoVmFsdWU6dXR0ZXJhbmNl
LT5waXRjaCgpXV0gZm9yUHJvcGVydHk6TlNTcGVlY2hQaXRjaEJhc2VQcm9wZXJ0eSBlcnJvcjpu
aWxdOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXRSYXRlOltzZWxmIGNvbnZlcnRSYXRlVG9XUE06
dXR0ZXJhbmNlLT5yYXRlKCldXTsNCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0Vm9sdW1lOnV0dGVy
YW5jZS0+dm9sdW1lKCldOw0KLQ0KLSAgICBtX3V0dGVyYW5jZSA9IHV0dGVyYW5jZTsNCi0gICAg
W21fc3ludGhlc2l6ZXIgc3RhcnRTcGVha2luZ1N0cmluZzp1dHRlcmFuY2UtPnRleHQoKV07DQot
ICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRTdGFydFNwZWFraW5nKCptX3V0
dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpcGF1c2UNCi17DQotICAgIGlmICghbV91dHRlcmFu
Y2UpDQotICAgICAgICByZXR1cm47DQotDQotICAgIFttX3N5bnRoZXNpemVyIHBhdXNlU3BlYWtp
bmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAgICBtX3N5bnRoZXNp
emVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkUGF1c2VTcGVha2luZygqbV91dHRlcmFuY2UpOw0KLX0N
Ci0NCi0tICh2b2lkKXJlc3VtZQ0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAg
IHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgY29udGludWVTcGVha2luZ107DQotICAg
IG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRSZXN1bWVTcGVha2luZygqbV91dHRl
cmFuY2UpOw0KLX0NCi0NCi0tICh2b2lkKWNhbmNlbA0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5j
ZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgc3RvcFNwZWFraW5n
QXRCb3VuZGFyeTpOU1NwZWVjaEltbWVkaWF0ZUJvdW5kYXJ5XTsNCi0gICAgbV9zeW50aGVzaXpl
ck9iamVjdC0+Y2xpZW50KCktPnNwZWFraW5nRXJyb3JPY2N1cnJlZCgqbV91dHRlcmFuY2UpOw0K
LSAgICBtX3V0dGVyYW5jZSA9IDA7DQotfQ0KLQ0KLS0gKHZvaWQpaW52YWxpZGF0ZQ0KLXsNCi0g
ICAgbV91dHRlcmFuY2UgPSAwOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXREZWxlZ2F0ZTpuaWxd
Ow0KLSAgICBbbV9zeW50aGVzaXplciBzdG9wU3BlYWtpbmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1t
ZWRpYXRlQm91bmRhcnldOw0KLX0NCi0NCi0tICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihOU1Nw
ZWVjaFN5bnRoZXNpemVyICopc2VuZGVyIGRpZEZpbmlzaFNwZWFraW5nOihCT09MKWZpbmlzaGVk
U3BlYWtpbmcNCi17DQotICAgIGlmICghbV91dHRlcmFuY2UpDQotICAgICAgICByZXR1cm47DQot
DQotICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOw0KLQ0KLSAgICAvLyBDbGVhciB0aGUgbV91dHRl
cmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNw
ZWFraW5nIGpvYiBpbW1lZGlhdGVseS4NCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UqIHV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KLSAgICBtX3V0dGVyYW5j
ZSA9IDA7DQotDQotICAgIGlmIChmaW5pc2hlZFNwZWFraW5nKQ0KLSAgICAgICAgbV9zeW50aGVz
aXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCp1dHRlcmFuY2UpOw0KLSAg
ICBlbHNlDQotICAgICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdF
cnJvck9jY3VycmVkKCp1dHRlcmFuY2UpOw0KLX0NCi0NCi0tICh2b2lkKXNwZWVjaFN5bnRoZXNp
emVyOihOU1NwZWVjaFN5bnRoZXNpemVyICopc2VuZGVyIHdpbGxTcGVha1dvcmQ6KE5TUmFuZ2Up
Y2hhcmFjdGVyUmFuZ2Ugb2ZTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nDQotew0KLSAgICBVTlVT
RURfUEFSQU0oc2VuZGVyKTsNCi0gICAgVU5VU0VEX1BBUkFNKHN0cmluZyk7DQotDQotICAgIGlm
ICghbV91dHRlcmFuY2UpDQotICAgICAgICByZXR1cm47DQotDQotICAgIC8vIE1hYyBwbGF0Zm9y
bSBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCi0gICAgbV9zeW50aGVzaXplck9iamVj
dC0+Y2xpZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdlYkNvcmU6
OlNwZWVjaEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdlLmxvY2F0
aW9uKTsNCi19DQotDQotQGVuZA0KLQ0KLW5hbWVzcGFjZSBXZWJDb3JlIHsNCi0NCi1QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJDbGllbnQqIGNsaWVudCkNCi0gICAgOiBtX3NwZWVjaFN5bnRoZXNpemVy
Q2xpZW50KGNsaWVudCkNCi17DQotfQ0KLQ0KLVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6On5Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNoV3Jh
cHBlciBpbnZhbGlkYXRlXTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRkFycmF5UmVmPiBz
cGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCkNCi17DQotICAgIC8vIEdldCBhbGwg
dGhlIHZvaWNlcyBvZmZlcmVkIGJ5IFRUUy4NCi0gICAgLy8gQnkgZGVmYXVsdCBzcGVlY2ggb25s
eSByZXR1cm5zICJwcmVtaXVtIiB2b2ljZXMsIHdoaWNoIGRvZXMgbm90IGluY2x1ZGUgYWxsIHRo
ZQ0KLSAgICAvLyBpbnRlcm5hdGlvbmFsIHZvaWNlcy4gVGhpcyBhbGxvd3MgdXMgdG8gb2ZmZXIg
c3BlZWNoIHN5bnRoZXNpcyBmb3IgYWxsIHN1cHBvcnRlZCBsYW5ndWFnZXMuDQotICAgIHJldHVy
biBhZG9wdENGKENvcHlTcGVlY2hTeW50aGVzaXNWb2ljZXNGb3JNb2RlKChfX2JyaWRnZSBDRkFy
cmF5UmVmKUBbIEAiVm9pY2VHcm91cERlZmF1bHQiLCBAIlZvaWNlR3JvdXBDb21wYWN0IiBdKSk7
DQotfQ0KLQ0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNwZWVjaFN5bnRoZXNpc0dl
dERlZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JMb2NhbGUoTlNMb2NhbGUgKnVzZXJMb2NhbGUpDQot
ew0KLSAgICBpZiAoIXVzZXJMb2NhbGUpDQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSNpZiBI
QVZFKFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotICAgIHJldHVybiBhZG9wdENGKENv
cHlJZGVudGlmaWVyU3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVj
aFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxl
UmVmKXVzZXJMb2NhbGUpKTsNCi0jZWxzZQ0KLSAgICByZXR1cm4gR2V0SWRlbnRpZmllclN0cmlu
Z0ZvclByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShzcGVlY2hTeW50aGVzaXNHZXRWb2lj
ZUlkZW50aWZpZXJzKCkuZ2V0KCksIChfX2JyaWRnZSBDRkxvY2FsZVJlZil1c2VyTG9jYWxlKTsN
Ci0jZW5kaWYNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjppbml0aWFs
aXplVm9pY2VMaXN0KCkNCi17DQotICAgIGF1dG8gYXZhaWxhYmxlVm9pY2VzID0gc3BlZWNoU3lu
dGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpOw0KLSAgICBOU1VJbnRlZ2VyIGNvdW50ID0gWyhf
X2JyaWRnZSBOU0FycmF5ICopYXZhaWxhYmxlVm9pY2VzLmdldCgpIGNvdW50XTsNCi0gICAgZm9y
IChOU1VJbnRlZ2VyIGsgPSAwOyBrIDwgY291bnQ7IGsrKykgew0KLSAgICAgICAgTlNTdHJpbmcg
KnZvaWNlTmFtZSA9IFsoX19icmlkZ2UgTlNBcnJheSAqKWF2YWlsYWJsZVZvaWNlcy5nZXQoKSBv
YmplY3RBdEluZGV4OmtdOw0KLSAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW05T
U3BlZWNoU3ludGhlc2l6ZXIgYXR0cmlidXRlc0ZvclZvaWNlOnZvaWNlTmFtZV07DQotDQotICAg
ICAgICBOU1N0cmluZyAqdm9pY2VVUkkgPSBbYXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2lj
ZUlkZW50aWZpZXJdOw0KLSAgICAgICAgTlNTdHJpbmcgKm5hbWUgPSBbYXR0cmlidXRlcyBvYmpl
Y3RGb3JLZXk6TlNWb2ljZU5hbWVdOw0KLSAgICAgICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gW2F0
dHJpYnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TVm9pY2VMb2NhbGVJZGVudGlmaWVyXTsNCi0gICAgICAg
IGF1dG8gZGVmYXVsdFZvaWNlVVJJID0gc3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRl
bnRpZmllckZvckxvY2FsZShhZG9wdE5TKFtbTlNMb2NhbGUgYWxsb2NdIGluaXRXaXRoTG9jYWxl
SWRlbnRpZmllcjpsYW5ndWFnZV0pLmdldCgpKTsNCi0NCi0gICAgICAgIC8vIENoYW5nZSB0byBC
Q1AtNDcgZm9ybWF0IGFzIGRlZmluZWQgYnkgc3BlYy4NCi0gICAgICAgIGxhbmd1YWdlID0gW2xh
bmd1YWdlIHN0cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNPZlN0cmluZzpAIl8iIHdpdGhTdHJp
bmc6QCItIl07DQotDQotICAgICAgICBib29sIGlzRGVmYXVsdCA9IFsoX19icmlkZ2UgTlNTdHJp
bmcgKilkZWZhdWx0Vm9pY2VVUkkuZ2V0KCkgaXNFcXVhbFRvU3RyaW5nOnZvaWNlVVJJXTsNCi0N
Ci0gICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNl
OjpjcmVhdGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQpKTsNCi0g
ICAgfQ0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnBhdXNlKCkNCi17
DQotICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBwYXVzZV07DQotfQ0KLQ0KLXZvaWQgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cmVzdW1lKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3Bl
ZWNoV3JhcHBlciByZXN1bWVdOw0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXI6OnNwZWFrKFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4mJiB1dHRl
cmFuY2UpDQotew0KLSAgICBpZiAoIW1fcGxhdGZvcm1TcGVlY2hXcmFwcGVyKQ0KLSAgICAgICAg
bV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgPSBhZG9wdE5TKFtbV2ViU3BlZWNoU3ludGhlc2lzV3Jh
cHBlciBhbGxvY10gaW5pdFdpdGhTcGVlY2hTeW50aGVzaXplcjp0aGlzXSk7DQotDQotICAgIFtt
X3BsYXRmb3JtU3BlZWNoV3JhcHBlciBzcGVha1V0dGVyYW5jZTp1dHRlcmFuY2UuZ2V0KCldOw0K
LX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmNhbmNlbCgpDQotew0KLSAg
ICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgY2FuY2VsXTsNCi19DQotDQotdm9pZCBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyOjpyZXNldFN0YXRlKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3Bl
ZWNoV3JhcHBlciBjYW5jZWxdOw0KLX0NCi0NCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQotDQot
I2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShNQUMpDQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zw0KaW5kZXggODAxYTc1MmJmYzVmLi4yNWNjNTcwMjdiMWYgMTAwNjQ0DQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCkBAIC0xLDMg
KzEsMjIgQEANCisyMDIxLTExLTI3ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5j
b20+DQorDQorICAgICAgICBBWDogVW5pZnkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVz
YWdlIGZvciBNYWMvaU9TDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxODk1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIENyZWF0ZSBh
IG5ldyBtZXNzYWdlIGZvciByZXNldHRpbmcgc3BlZWNoIHN5bnRoZXNpcyBzdGF0ZSB3aGVuIHRo
ZSBET01XaW5kb3cgY2hhbmdlcw0KKyAgICAgICAgYnV0IHRoZSBQYWdlIChhbmQgaXRzIHJlZmVy
ZW5jZWQgc3BlZWNoIHN5bnRoZXNpcykgc3RheXMgdGhlIHNhbWUuDQorDQorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzcGVlY2hTeW50aGVzaXNSZXNldFN0YXRlKToNCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
Og0KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNp
c0NsaWVudC5jcHA6DQorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6
OnJlc2V0U3RhdGUpOg0KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oOg0KKw0KIDIwMjEtMTEtMjMgIERvbiBPbG1zdGVhZCAgPGRv
bi5vbG1zdGVhZEBzb255LmNvbT4NCiANCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVz
LCBtaWQgTm92ZW1iZXIgMjAyMSBlZGl0aW9uDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHANCmluZGV4IGY2YWI4MDlkYzhjNC4uNDQ5NTcwOWI1ZjI1IDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KQEAgLTEwNTE1LDYgKzEwNTE1LDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzcGVlY2hTeW50aGVzaXNDYW5jZWwoKQ0KICAgICBzcGVl
Y2hTeW50aGVzaXNEYXRhKCkuc3ludGhlc2l6ZXItPmNhbmNlbCgpOw0KIH0NCiANCit2b2lkIFdl
YlBhZ2VQcm94eTo6c3BlZWNoU3ludGhlc2lzUmVzZXRTdGF0ZSgpDQorew0KKyAgICBzcGVlY2hT
eW50aGVzaXNEYXRhKCkuc3ludGhlc2l6ZXItPnJlc2V0U3RhdGUoKTsNCit9DQorDQogdm9pZCBX
ZWJQYWdlUHJveHk6OnNwZWVjaFN5bnRoZXNpc1BhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikNCiB7DQogICAgIHNwZWVjaFN5bnRoZXNpc0RhdGEoKS5z
cGVha2luZ1BhdXNlZENvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cik7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaA0KaW5kZXggNTNiYjZkNWRk
MTBjLi5iMmY1NjVmZjA1NDMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaA0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgNCkBAIC0xODEyLDYgKzE4MTIsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgc3BlZWNoU3ludGhl
c2lzQ2FuY2VsKCk7DQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzUGF1c2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsNCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXN1bWUoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsNCisgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXNldFN0
YXRlKCk7DQogI2VuZGlmDQogDQogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29u
c3QgU3RyaW5nJiwgV1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7DQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQppbmRleCA2MmFl
YjU4N2Y3YzguLjA4Nzc4YWU2NTQ0OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbg0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQpAQCAtNTQ0LDYgKzU0NCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7DQogICAgIFNwZWVjaFN5bnRoZXNpc0NhbmNlbCgpDQogICAgIFNw
ZWVjaFN5bnRoZXNpc1BhdXNlKCkgLT4gKCkgQXN5bmMNCiAgICAgU3BlZWNoU3ludGhlc2lzUmVz
dW1lKCkgLT4gKCkgQXN5bmMNCisgICAgU3BlZWNoU3ludGhlc2lzUmVzZXRTdGF0ZSgpDQogI2Vu
ZGlmDQogDQogI2lmIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcA0KaW5kZXggOWExOTE2YWE4NmQ5Li5jNGQwZGNjMDNkNWQg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcA0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHANCkBAIC01NSw2ICs1
NSwxMSBAQCBXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlciogV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50Ojpjb3JlUGFnZU9ic2Vydg0KICAgICByZXR1cm4gbnVsbHB0cjsNCiB9
DQogDQordm9pZCBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnJlc2V0U3RhdGUoKQ0KK3sNCisg
ICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3BlZWNoU3ludGhlc2lzUmVz
ZXRTdGF0ZSgpKTsNCit9DQorDQogdm9pZCBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnNwZWFr
KFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJh
bmNlKQ0KIHsNCiAgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IHN0YXJ0ZWRDb21w
bGV0aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSgpIG11
dGFibGUgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaA0KaW5kZXggN2JkODc1
OTA1YTY1Li45NmQ4ZTIzYTlhMTkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGll
bnQuaA0KQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOg0KIHByaXZhdGU6DQogICAgIHZvaWQgc2V0
T2JzZXJ2ZXIoV2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlcj4g
b2JzZXJ2ZXIpIG92ZXJyaWRlIHsgbV9vYnNlcnZlciA9IG9ic2VydmVyOyB9DQogICAgIFdlYWtQ
dHI8V2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzQ2xpZW50T2JzZXJ2ZXI+IG9ic2VydmVyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQ0KKyAgICB2b2lkIHJlc2V0U3RhdGUo
KSBvdmVycmlkZTsNCiANCiAgICAgV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzQ2xpZW50T2JzZXJ2
ZXIqIGNvcmVQYWdlT2JzZXJ2ZXIoKSBjb25zdDsNCiAgICAgDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445222</attachid>
            <date>2021-11-27 13:40:01 -0800</date>
            <delta_ts>2021-11-27 16:32:05 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>49625</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMjI2YTY1OGJmNDUwLi45NGNjMTQ1ZmFjMmYgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NSBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBmYXN0L3NwZWVj
aHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50
eHQ6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoNCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6DQorDQogMjAyMS0xMS0yMyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+DQogDQogICAgICAgICBDU1A6
IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb24gZXZlbnQgaXMgYWx3YXlzIHVzaW5nIGRvY3VtZW50
IGFzIHRhcmdldA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHkt
c3RyaW5nLWV4cGVjdGVkLnR4dA0KaW5kZXggMGEwM2ZmOTJjYTYyLi42Nzc4ZWI2MWFjZTQgMTAw
NjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhl
c2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50eHQNCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4
cGVjdGVkLnR4dA0KQEAgLTUsNiArNSw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFDQogDQog
UEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgZmFsc2UNCiBQQVNTIGV2ZW50LmVsYXBz
ZWRUaW1lID4gMCBpcyB0cnVlDQorUEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgdHJ1
ZQ0KK1BBU1MgZXZlbnQuZWxhcHNlZFRpbWUgPiAwIGlzIHRydWUNCiBQQVNTIHNwZWVjaFN5bnRo
ZXNpcy5zcGVha2luZyBpcyBmYWxzZQ0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUN
CiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZw0KaW5kZXggNWEyMGE3MWYzZDY4Li4yODY3
ZTQ0Y2I4MTEgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
DQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEz
IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0K
Kw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBm
b3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQu
dHh0Og0KKw0KIDIwMjEtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPg0KIA0KICAgICAgICAgQ1NQOiBzZWN1cml0eSBwb2xpY3kgdmlvbGF0aW9uIGV2ZW50
IGlzIGFsd2F5cyB1c2luZyBkb2N1bWVudCBhcyB0YXJnZXQNCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3lu
dGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2
ZW50cy1leHBlY3RlZC50eHQNCmluZGV4IGRjOTFhOGIxYTYxMy4uMjg0YTcyYTEyOTUzIDEwMDY0
NA0KLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVl
Y2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQudHh0DQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3Bl
ZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQNCkBAIC0xLDQgKzEsNCBAQA0K
IA0KLUZBSUwgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVuZCBldmVu
dHMgd2l0aCBlbXB0eSB1dHRlcmFuY2UgYXNzZXJ0X3RydWU6IE5vdCBleHBlY3RpbmcgZXZlbnQs
IGJ1dCBnb3QgZW5kIGV2ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlDQorUEFTUyBzcGVlY2hT
eW50aGVzaXMuc3BlYWsoKSBmaXJlcyBzdGFydCBhbmQgZW5kIGV2ZW50cyB3aXRoIGVtcHR5IHV0
dGVyYW5jZQ0KIFBBU1Mgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVu
ZCBldmVudHMNCiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGQ2Y2VkODYwZGYxYS4uNTRhNDg3YTAxZGJkIDEwMDY0NA0KLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zDQorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC0xMjA4LDkgKzEyMDgs
NiBAQCB3ZWJraXQub3JnL2IvMTc5Nzk2IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNr
LWNhY2hlLXZhbGlkYXRpb24tYmFjay1uYXZpZw0KICMgPHJkYXI6Ly9wcm9ibGVtLzY0NzAwNjU4
PiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2lk
bGhhcm5lc3MuaHR0cHMuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQgYW5kIGZsYWt5IGZhaWx1cmUN
CiBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0N
CiANCi0jIHJkYXI6Ly82NjcwMTgxNSAoUkVHUkVTU0lPTiAoMjBBMjMyMWEtMjBBMjM0OGIpOiBm
YXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy5o
dG1sIGlzIGEgZmxha3kgZmFpbHVyZSkNCi1bIEJpZ1N1cisgXSBmYXN0L3NwZWVjaHN5bnRoZXNp
cy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0NCi0NCiAjIHJkYXI6Ly82NjcwMzc3MyAoUkVHUkVTU0lPTiAoMjBBMjMxNi0yMEEyMzQ4Yik6
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbi1ibG9ja2Vk
LWluLWFib3V0LWJsYW5rLXdpbmRvdy5odG1sIGlzIGEgY29uc3RhbnQgZmFpbHVyZSkNCiBbIGFy
bTY0IF0gaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2luLWJs
b2NrZWQtaW4tYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgWyBTa2lwIF0NCiANCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zDQppbmRleCA2ZGQ0NzFjZTRhZTMuLjU3ZDMz
ZjQzNzViNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucw0K
QEAgLTIwMzIsMTAgKzIwMzIsNiBAQCB3ZWJraXQub3JnL2IvMjE3NjQxIFsgRGVidWcgXSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9ldmVudC10aW1lb3V0Lg0KIA0KIHdlYmtp
dC5vcmcvYi8yMTc2MjAgaW5zcGVjdG9yL2F1ZGl0L2Jhc2ljLWFzeW5jLmh0bWwgWyBQYXNzIFRp
bWVvdXQgXQ0KIA0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9T
cGVlY2hTeW50aGVzaXMtc3BlYWstdHdpY2UuaHRtbCBbIFNraXAgXQ0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hTeW50aGVzaXMtc3BlYWstd2l0aG91
dC1hY3RpdmF0aW9uLWZhaWxzLnRlbnRhdGl2ZS5odG1sIFsgU2tpcCBdDQotd2Via2l0Lm9yZy9i
LzIyNzUwMSBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gt
YXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMuaHRtbCBbIFNraXAgXQ0KLQ0KIHdlYmtp
dC5vcmcvYi8yMTc2NjkgaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLXNw
aW5uaW5nLW1lc3NhZ2UuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdDQogDQogd2Via2l0Lm9y
Zy9iLzIxNzk5NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRw
dXQtY2hhbm5lbC1jb3VudC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0NCkBAIC0yMzAyLDgg
KzIyOTgsNiBAQCB3ZWJraXQub3JnL2IvMjI5MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbQ0KIA0KICNyZGFyOi8vODIxNDYzNjcg
KFtNYWMsIGlPUyBSZWxlYXNlXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2xheW91dC13b3JrbGV0LWNzcC5odHRwcy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZSkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9sYXlvdXQtd29ya2xldC1jc3Au
aHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdIA0KIA0KLXdlYmtpdC5vcmcvYi8yMjgzOTYgZmFz
dC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay1lbXB0eS1zdHJpbmcuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdDQotDQogd2Via2l0Lm9yZy9iLzIyODE3NiBbIE1vamF2ZSBDYXRh
bGluYSBCaWdTdXIgXSBmYXN0L3RleHQvdmFyaWFibGUtc3lzdGVtLWZvbnQuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQ0KIHdlYmtpdC5vcmcvYi8yMjgxNzYgWyBNb250ZXJleSBdIGZhc3QvdGV4
dC92YXJpYWJsZS1zeXN0ZW0tZm9udC5odG1sIFsgUGFzcyBdDQogDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KaW5kZXggZWFiM2IyMGRh
NWY0Li5iYWZmZmZiYjk1MzQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTMgQEANCisyMDIxLTExLTI3ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQorICAgICAgICBBWDogVW5p
Znkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdlIGZvciBNYWMvaU9TDQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODk1DQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4NCisNCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOg0KKw0KIDIwMjEt
MTEtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+DQogDQogICAgICAgICBb
TW9kZWxdIGFkZCBhdWRpbyBzdXBwb3J0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaA0KaW5kZXggY2NlYzFl
ZmQxMWQyLi4wMjQ1M2M4YjM0NTIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaA0KKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCkBAIC03NTcsNyAr
NzU3LDcgQEANCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgKFBMQVRGT1JNKElPUykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxNDAzMDANCisjaWYgKChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxNDAzMDApIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPiAxMjAwMDApDQogI2lm
ICFkZWZpbmVkKEhBVkVfQVZTUEVFQ0hTWU5USEVTSVNfU1lTVEVNVk9JQ0UpDQogI2RlZmluZSBI
QVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNFIDENCiAjZW5kaWYNCkBAIC03NjksMTIg
Kzc2OSw2IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDANCi0jaWYgIWRlZmluZWQoSEFW
RV9TUEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLSNkZWZpbmUgSEFWRV9TUEVFQ0hTWU5U
SEVTSVNfTU9OVEVSRVlfU1BJIDENCi0jZW5kaWYNCi0jZW5kaWYNCi0NCiAjaWYgQ09NUElMRVIo
R0NDX0NPTVBBVElCTEUpICYmIGRlZmluZWQoX19oYXNfYXR0cmlidXRlKQ0KICNpZiBfX2hhc19h
dHRyaWJ1dGUob2JqY19kaXJlY3QpICYmICghUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkNCiAjaWYgIWRlZmluZWQoSEFWRV9OU19ESVJF
Q1RfU1VQUE9SVCkNCkBAIC0xMDk3LDMgKzEwOTEsNyBAQA0KICNpZiBQTEFURk9STShNQUMpDQog
I2RlZmluZSBIQVZFX1NDRU5FS0lUIDENCiAjZW5kaWYNCisNCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApDQorI2RlZmluZSBI
QVZFX1VOSUZJRURfU1BFRUNIU1lOVEhFU0lTX0ZJWF9GT1JfODE0NjUxNjQgMQ0KKyNlbmRpZg0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggODUzN2ZmNzgxZTJlLi44ZThhYjdmYjI3ZGQgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0K
QEAgLTEsMyArMSwyOCBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNo
QGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxh
dGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3
OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
QVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBzdXBwb3J0ZWQgb24gbWFjT1MgZm9y
IGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0byB1bmlmeSBwbGF0Zm9ybSB1c2Fn
ZS4NCisgICAgICAgIEZpeCBhIG51bWJlciBvZiB0ZXN0cyB0aGF0IGhhZCBiZWVuIG1hcmtlZCBm
YWlsaW5nL2ZsYWt5IHJlbGF0ZWQgdG8gc3BlZWNoIHN5bnRoZXNpcy4NCisNCisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyk6DQorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoU3ludGhlc2lzOjpzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkpOg0KKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFN5bnRoZXNpczo6c3BlYWspOg0KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
Og0KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6DQorICAgICAg
ICAqIHBhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg6DQorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDoNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OnZhcmlhdGlv
bkF4ZXMpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cklPUy5tbTogUmVtb3ZlZC4NCisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNYWMubW06IFJlbW92ZWQuDQorICAgICAgICAqIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbTogQWRkZWQuDQor
DQogMjAyMS0xMS0yMyAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPg0KIA0K
ICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGV4cGxpY2l0IGluaXRpYWxpemVyX2xpc3QgdXNh
Z2UNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
LmNwcA0KaW5kZXggMTJjNjgzOWRkYmE0Li5lYWYzYTJlMWU3OTggMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwDQpAQCAtNTksOCAr
NTksMTAgQEAgU3BlZWNoU3ludGhlc2lzOjpTcGVlY2hTeW50aGVzaXMoV2Vha1B0cjxTcGVlY2hT
eW50aGVzaXNDbGllbnQ+IGNsaWVudCwgRG9jdW1lbnQNCiAgICAgVU5VU0VEX1BBUkFNKGRvY3Vt
ZW50KTsNCiAjZW5kaWYNCiANCi0gICAgaWYgKG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KQ0KKyAg
ICBpZiAobV9zcGVlY2hTeW50aGVzaXNDbGllbnQpIHsNCiAgICAgICAgIG1fc3BlZWNoU3ludGhl
c2lzQ2xpZW50LT5zZXRPYnNlcnZlcigqdGhpcyk7DQorICAgICAgICBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudC0+cmVzZXRTdGF0ZSgpOw0KKyAgICB9DQogfQ0KIA0KIHZvaWQgU3BlZWNoU3ludGhl
c2lzOjpzZXRQbGF0Zm9ybVN5bnRoZXNpemVyKHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyPiBzeW50aGVzaXplcikNCkBAIC0xMjIsMTIgKzEyNCw2IEBAIHZvaWQgU3Bl
ZWNoU3ludGhlc2lzOjpzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkoU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlJiB1dHRlcmFuDQogICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSA9ICZ1dHRlcmFu
Y2U7DQogICAgIG1faXNQYXVzZWQgPSBmYWxzZTsNCiANCi0gICAgLy8gWmVybyBsZW5ndGhlZCBz
dHJpbmdzIHNob3VsZCBpbW1lZGlhdGVseSBub3RpZnkgdGhhdCB0aGUgZXZlbnQgaXMgY29tcGxl
dGUuDQotICAgIGlmICh1dHRlcmFuY2UudGV4dCgpLmlzRW1wdHkoKSkgew0KLSAgICAgICAgaGFu
ZGxlU3BlYWtpbmdDb21wbGV0ZWQodXR0ZXJhbmNlLCBmYWxzZSk7DQotICAgICAgICByZXR1cm47
DQotICAgIH0NCi0NCiAgICAgaWYgKG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KQ0KICAgICAgICAg
bV9zcGVlY2hTeW50aGVzaXNDbGllbnQtPnNwZWFrKHV0dGVyYW5jZS5wbGF0Zm9ybVV0dGVyYW5j
ZSgpKTsNCiAgICAgZWxzZQ0KQEAgLTE0NSw3ICsxNDEsNiBAQCB2b2lkIFNwZWVjaFN5bnRoZXNp
czo6c3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJiB1dHRlcmFuY2UpDQogI2VuZGlmDQog
DQogICAgIG1fdXR0ZXJhbmNlUXVldWUuYXBwZW5kKHV0dGVyYW5jZSk7DQotDQogICAgIC8vIElm
IHRoZSBxdWV1ZSB3YXMgZW1wdHksIHNwZWFrIHRoaXMgaW1tZWRpYXRlbHkgYW5kIGFkZCBpdCB0
byB0aGUgcXVldWUuDQogICAgIGlmIChtX3V0dGVyYW5jZVF1ZXVlLnNpemUoKSA9PSAxKQ0KICAg
ICAgICAgc3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KG1fdXR0ZXJhbmNlUXVldWUuZmlyc3QoKSk7
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cNCmluZGV4IGU3MmRiZmQyNzEwZC4uNjU2MjU2ZWZkNGI4IDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZw0KQEAgLTEsMyArMSwxNyBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVl
Y2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLg0KKw0KKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoNCisgICAg
ICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6DQorICAgICAgICAqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToNCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9B
WFNwZWVjaE1hbmFnZXJTUEkuaDoNCisgICAgICAgICogcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhl
c2lzU1BJLmg6IFJlbW92ZWQuDQorDQogMjAyMS0xMS0yMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPg0KIA0KICAgICAgICAgW1dlYkdQVV0gVXNlIE9wdGlvblNldCB3
aGVyZSBpdCBtYWtlcyBzZW5zZSB0bw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Q
QUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5kZXggYWU2OTk3NWZiYmI2Li5iYzM1ZDhjNjFiYjEg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvag0KQEAgLTMyMyw3ICszMjMsNiBAQA0KIAkJQTEwODI2RjkxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTA4MjZGNzFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCAqLzsgfTsNCiAJCUExMDgy
NkZBMUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgyNkY4MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQ
YW5lbC5tbSAqLzsgfTsNCiAJCUExMDgyNkZFMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNz
U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA4
MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovOyB9Ow0KLQkJQTExNzVC
NDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYw
IC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9Ow0KIAkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovOyB9Ow0K
IAkJQTExNzVCNEUxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5oICovOyB9Ow0KIAkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBv
cHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07DQpAQCAtNzI4
LDcgKzcyNyw2IEBADQogCQlBMTA4MjZGNzFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJ
CUExMDgyNkY4MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlBhbmVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTEwODI2
RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNH
cmFwaGljc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KLQkJQTExNzVCNDgxRjZB
RkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hTeW50aGVzaXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjRB
MUY2QjJEN0UwMEM0QjlGMCAvKiBOU0NlbGxTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNDZWxsU1BJ
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3NUI0QzFGNkIzMzczMDBDNEI5
RjAgLyogUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVu
dS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsNCkBAIC05NzgsNyArOTc2LDYgQEANCiAJCQkJMEM3Nzg1ODQxRjQ1MTMwRjAw
RjRFQkI2IC8qIE5TV2luZG93U1BJLmggKi8sDQogCQkJCTBDNzc4NTg1MUY0NTEzMEYwMEY0RUJC
NiAvKiBQSVBTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODcxRjQ1MTMwRjAwRjRFQkI2IC8qIFF1aWNr
TG9va01hY1NQSS5oICovLA0KLQkJCQlBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNo
U3ludGhlc2lzU1BJLmggKi8sDQogCQkJCTcxQjExNDFGMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0
ZW1QcmV2aWV3U1BJLmggKi8sDQogCQkJCTBDNzc4NTg4MUY0NTEzMEYwMEY0RUJCNiAvKiBUZWxl
cGhvbnlVdGlsaXRpZXNTUEkuaCAqLywNCiAJCQkpOw0KQEAgLTE1NDksNyArMTU0Niw2IEBADQog
CQkJCUEzNzg4RTk4MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oIGluIEhlYWRlcnMgKi8sDQog
CQkJCTkzQjM4RUJFMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sDQogCQkJCTkzQjM4RUMyMjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVlY2hTUEkuaCBpbiBI
ZWFkZXJzICovLA0KLQkJCQlBMTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhl
c2lzU1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJMEM1QUY5MjExRjQzQTRDNzAwMkVBQzAyIC8q
IFNRTGl0ZTNTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQk3MUIxMTQyMDI2ODIzQUNEMDA0RDY3
MDEgLyogU3lzdGVtUHJldmlld1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTMxMzA4QjE0MjBB
MjE3MDUwMDNGQjkyOSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLywNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgN
CmluZGV4IDlkYjlhZjhmN2VjMS4uYTczNzA5NzdiZGM4IDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgNCkBAIC03Niw2ICs3
Niw5IEBAIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTdHJlYW1TZXNzaW9uKQ0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBB
TCwgQVZBdWRpb1Nlc3Npb24pDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlBl
cnNpc3RhYmxlQ29udGVudEtleVJlcXVlc3QpDQorI2VuZGlmDQorDQorI2lmIFBMQVRGT1JNKENP
Q09BKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXNW
b2ljZSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoU3ludGhlc2l6
ZXIpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFV0dGVyYW5jZSkN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5tbQ0KaW5kZXggZDIxZDQ5Y2Q3NzAyLi5iZDZlYmJjYjk5MTMgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tDQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tDQpA
QCAtMTAyLDYgKzEwMiw5IEBAIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24sIFBBTF9FDQogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uLCBQQUxfRVhQT1JUKQ0KIFNPRlRfTElOS19D
TEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlBlcnNpc3Rh
YmxlQ29udGVudEtleVJlcXVlc3QsIFBBTF9FWFBPUlQpDQorI2VuZGlmDQorDQorI2lmIFBMQVRG
T1JNKENPQ09BKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlLCBQQUxfRVhQT1JUKQ0KIFNPRlRf
TElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNw
ZWVjaFN5bnRoZXNpemVyLCBQQUxfRVhQT1JUKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNwZWVjaFV0dGVyYW5jZSwgUEFMX0VY
UE9SVCkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BWFNw
ZWVjaE1hbmFnZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3Bl
ZWNoTWFuYWdlclNQSS5oDQppbmRleCBmZWNmMTBjZWEzYmYuLjA0NjhiYTkxYmE1MyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQ
SS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BWFNwZWVjaE1hbmFn
ZXJTUEkuaA0KQEAgLTI1LDcgKzI1LDcgQEANCiANCiAjcHJhZ21hIG9uY2UNCiANCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogDQogLy8gRklYTUU6IFVu
ZG8gd2hlbiBpc1N5c3RlbVZvaWNlIGlzIGF2YWlsYWJsZSBpbiBhbGwgU0RLcy4NCiAjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykgJiYgMA0KQEAgLTQyLDUgKzQyLDUgQEANCiANCiAjZW5kaWYg
Ly8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkNCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpDQogDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oDQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQNCmluZGV4IGI5Mjk3ODJiZWIwYy4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmgNCisrKyAvZGV2
L251bGwNCkBAIC0xLDQzICswLDAgQEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0gKg0KLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucw0KLSAqIGFyZSBtZXQ6DQotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQNCi0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCi0gKg0K
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycNCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywNCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSDQot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTDQotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUg0KLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GDQot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTDQotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4NCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQ0KLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YNCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
DQotICovDQotDQotI3ByYWdtYSBvbmNlDQotDQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
DQotDQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1By
aXYuaD4NCi0NCi0jZW5kaWYNCi0NCi1XVEZfRVhURVJOX0NfQkVHSU4NCi0NCi1DRkFycmF5UmVm
IENvcHlTcGVlY2hTeW50aGVzaXNWb2ljZXNGb3JNb2RlKENGVHlwZVJlZiBtb2RlKTsNCi0jaWYg
SEFWRShTUEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLUNGU3RyaW5nUmVmIENvcHlJZGVu
dGlmaWVyU3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKENGQXJyYXlSZWYg
dm9pY2VzLCBDRkxvY2FsZVJlZik7DQotI2Vsc2UNCi1DRlN0cmluZ1JlZiBHZXRJZGVudGlmaWVy
U3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKENGQXJyYXlSZWYgdm9pY2Vz
LCBDRkxvY2FsZVJlZik7DQotI2VuZGlmDQotDQotV1RGX0VYVEVSTl9DX0VORA0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0DQppbmRleCAxYTQ2Njg2Zjc4Y2QuLjNhYTJlNjIzZTBjNiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQNCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQNCkBAIC0yNTksNiArMjU5LDcgQEAgcGxhdGZvcm0vY29jb2EvUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0NCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJk
Q29jb2EubW0NCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tDQog
cGxhdGZvcm0vY29jb2EvUGxhdGZvcm1QYXN0ZWJvYXJkQ29jb2EubW0NCitwbGF0Zm9ybS9jb2Nv
YS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0v
Y29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0NCiBwbGF0Zm9ybS9jb2Nv
YS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tDQogcGxhdGZvcm0vY29jb2EvUmVtb3RlQ29tbWFuZExp
c3RlbmVyQ29jb2EubW0NCkBAIC00NDEsNyArNDQyLDYgQEAgcGxhdGZvcm0vaW9zL1Bhc3RlYm9h
cmRJT1MubW0NCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gQG5vLXVu
aWZ5DQogcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lv
cy9QbGF0Zm9ybVNjcmVlbklPUy5tbQ0KLXBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVySU9TLm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdC5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUHJldmlld0NvbnZlcnRlcklP
Uy5tbQ0KIHBsYXRmb3JtL2lvcy9RdWlja0xvb2subW0NCkBAIC00ODgsNyArNDg4LDYgQEAgcGxh
dGZvcm0vbWFjL1Bhc3RlYm9hcmRXcml0ZXIubW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tDQog
cGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tDQotcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNYWMubW0NCiBwbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlTWFjLm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL21hYy9QbHVnaW5CbG9ja2xpc3QubW0N
CiBwbGF0Zm9ybS9tYWMvUG93ZXJPYnNlcnZlck1hYy5jcHANCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oNCmluZGV4IDI4NmM5MzQ5YjEyMi4u
MGM5MGI4ZmRjNTY5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oNCkBAIC0zNzAzLDcgKzM3MDMsNyBAQA0KIAkJQTlEMjQ4MDEwRDc1
N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5RDI0N0ZEMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RP
TVBsdWdpbkFycmF5LmggKi87IH07DQogCQlBOUQyNDgwNzBENzU3RTdEMDBGREY5NTkgLyogSlNE
T01NaW1lVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTlEMjQ4MDMwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGUuaCAqLzsgfTsNCiAJ
CUE5RDI0ODA5MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5RDI0ODA1MEQ3NTdFN0Qw
MEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAqLzsgfTsNCi0JCUFBMTJERjQ5MTc0M0RG
ODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIw
MEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi87IH07DQorCQlBQTEyREY0
OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFFMzc1NUQxNzQy
OUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSAqLzsgfTsN
CiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTA5NzhFRTBBQkFB
NkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07DQogCQlBQTJBNUFDRTE2QTQ4NUZEMDA5NzVBMjUg
LyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBMkE1QUM3MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVz
aXNWb2ljZS5oICovOyB9Ow0KIAkJQUEyQTVBRDAxNkE0ODYwNDAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUEyQTVBQzUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZS5oICovOyB9Ow0KQEAgLTc1NzYsNyArNzU3Niw2IEBADQogCQkyOUQ3QkNGOTE0NDRBRjdE
MDA3MDYxOUMgLyogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsNCiAJCTI5RTA0QTI3QkVEMkY4MUY5OEU5MDIyQiAvKiBKU0JlZm9yZVVubG9h
ZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmVmb3JlVW5sb2Fk
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTI5RTREOERGMTZCMDk0MEYw
MEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCi0J
CTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTI5RkFG
NEI1MTk1QUIwODkwMEE1MjJEQyAvKiBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMkE0MTA3QTAyNkNCNjZFRDAwM0JGNzk3
IC8qIENTU0tleXdvcmRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NLZXl3b3JkVmFs
dWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMkE0MTA3QTIyNkNCNjZFRDAw
M0JGNzk3IC8qIENTU0tleXdvcmRWYWx1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTS2V5d29yZFZhbHVlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCkBAIC0xMzkzNyw3ICsxMzkzNiw3IEBADQogCQlB
QURFRkU0MzI1QUY0RkNCMDA0MERENjcgLyogRm9jdXNPcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvY3VzT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzQx
NkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFBRTI3Qjc1MTZDQkZD
MEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KLQkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8q
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9Ow0KKwkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFBRjVCN0IxMTUyNEI0QkQwMDA0Q0I0OSAvKiBXZWJTb2Nr
ZXRGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTb2Nr
ZXRGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQjIzQTMyNTA5QkJB
N0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI2MDlCQkE3RDAwMDY3Q0M1MyAvKiBC
ZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsN
CkBAIC0yMzAwOCw3ICsyMzAwNyw2IEBADQogCQkJCUJDQUE0ODZEMTRBMDUyNTMwMDg4RkFDNCAv
KiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSAqLywNCiAJCQkJQzVGNzY1QkExNEUxRUNGNDAw
NkM4OTlCIC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSAqLywNCiAJCQkJQkM5NEQxMDcwQzI3
NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tICovLA0KLQkJCQkyOUU0RDhFMDE2
QjA5NTk4MDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbSAqLywNCiAJ
CQkJQ0RBMjlBMTUxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
Yy5oICovLA0KIAkJCQlDREEyOUExNDFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjLm1tICovLA0KIAkJCQkxQUZGQzQ0RjFENUU3RUM3MDAyNjdBNjYgLyogUGx1
Z2luQmxvY2tsaXN0LmggKi8sDQpAQCAtMjU3MDUsNyArMjU3MDMsNiBAQA0KIAkJCQkyNjYwMUVC
RTE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gKi8sDQogCQkJ
CUM1Mjc4QjBCMTdGMjEyRUEwMDNBMjk5OCAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gKi8s
DQogCQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVDOCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAq
LywNCi0JCQkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJJT1MubW0gKi8sDQogCQkJCUNEQTI5QTJFMUNCRjczRkMwMDkwMUNDRiAvKiBQbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oICovLA0KIAkJCQlDREEyOUEyRjFDQkY3M0ZDMDA5MDFD
Q0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gKi8sDQogCQkJCUExQzE1MDc3
MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVySU9TLm1tICovLA0KQEAgLTI1ODY0
LDYgKzI1ODYxLDcgQEANCiAJCQkJOUJFRDJDQUYxRjdDQzA2MjAwNjY2MDE4IC8qIFBhc3RlYm9h
cmRDb2NvYS5tbSAqLywNCiAJCQkJRjRGQjM1MDAyMzUwQzk2MjAwRjAwOTRBIC8qIFBhc3RlYm9h
cmRDdXN0b21EYXRhQ29jb2EubW0gKi8sDQogCQkJCUY0NjI4QTlFMjM0RDNCQkYwMEJDODg0QyAv
KiBQbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbSAqLywNCisJCQkJQUFFMzc1NUQxNzQyOUJDQzAw
NjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSAqLywNCiAJCQkJNTJC
MEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICovLA0KIAkJCQk5NUJBNEZB
QjI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oICovLA0KIAkJCQlD
REEyOUEwQTFDQkQ5QTc0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWwuaCAqLywNCkBA
IC0zNzU4Nyw3ICszNzU4NSw3IEBADQogCQkJCTFBNTY5RDFBMEQ3RTJCODIwMDdDMzk4MyAvKiBv
YmpjX3V0aWxpdHkubW0gaW4gU291cmNlcyAqLywNCiAJCQkJRTE2OTgyNjAxMTM0NjM2QTAwODk0
MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sDQogCQkJCUNFQTI4NDY2
MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBpbiBTb3VyY2Vz
ICovLA0KLQkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLA0KKwkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFG
REYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGluIFNvdXJjZXMgKi8sDQog
CQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDREEyOUExNjFDQkRBNTZDMDA5MDFDQ0YgLyog
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGluIFNvdXJjZXMgKi8sDQogCQkJCTQxOTI0
MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5t
bSBpbiBTb3VyY2VzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oDQppbmRleCBmOGJlNDYyYTJlMWYuLjQwMzI5YWQwNGFlMiAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCkBAIC00Nyw2ICs0Nyw3IEBAIHB1
YmxpYzoNCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsNCiAgICAgdmlydHVhbCB2b2lk
IHBhdXNlKCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgPSAwOw0KKyAgICB2aXJ0
dWFsIHZvaWQgcmVzZXRTdGF0ZSgpID0gMDsNCiANCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaA0KaW5kZXggYjRiOGQw
OGEwY2MzLi4yM2EwZjI5MTI5ZjEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaA0KQEAgLTcyLDggKzcyLDggQEAgcHVibGlj
Og0KICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKTsNCiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgp
Ow0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCk7DQorICAgIHZpcnR1YWwgdm9pZCByZXNldFN0
YXRlKCk7DQogDQotICAgIHZvaWQgcmVzZXRTdGF0ZSgpOw0KICAgICBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNp
emVyQ2xpZW50OyB9DQogDQogcHJvdGVjdGVkOg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tDQpz
aW1pbGFyaXR5IGluZGV4IDg4JQ0KcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCnJlbmFtZSB0byBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0NCmlu
ZGV4IDU4NTgyNDQ2YmI0Ni4uYzJiYTUzMjliMDA0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2Nv
YS5tbQ0KQEAgLTI1LDExICsyNSwxNyBAQA0KICNpbXBvcnQgImNvbmZpZy5oIg0KICNpbXBvcnQg
IlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCiANCi0jaWYgRU5BQkxFKFNQRUVDSF9TWU5U
SEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKSAmJiBQTEFURk9STShDT0NPQSkNCiANCiAjaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5oIg0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2Uu
aCINCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisNCisjaWYg
X19oYXNfaW5jbHVkZSg8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4pDQorI2ltcG9ydCA8
QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisjZWxzZQ0KKyNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVkZvdW5kYXRpb24uaD4NCisjZW5kaWYNCisNCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0FYU3BlZWNoTWFuYWdlclNQSS5oPg0KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25z
Lmg+DQogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPg0KQEAgLTYzLDggKzY5LDcgQEAgc3RhdGlj
IGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICNkZWZpbmUg
QVZTcGVlY2hVdHRlcmFuY2VEZWZhdWx0U3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5jZURl
ZmF1bHRTcGVlY2hSYXRlKCkNCiAjZGVmaW5lIEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVj
aFJhdGUgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogDQotQGludGVy
ZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8QVZTcGVlY2hTeW50aGVz
aXplckRlbGVnYXRlPg0KLXsNCitAaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIg
OiBOU09iamVjdDxBVlNwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+IHsNCiAgICAgV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCiAgICAgLy8g
SG9sZCBhIFJlZiB0byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFyIHVu
dGlsIHRoZSBzeW50aCBpcyBkb25lIHdpdGggaXQuDQogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gbV91dHRlcmFuY2U7DQpAQCAtMTA1LDE2ICsx
MTAsMTUgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJh
dGUoKQ0KICAgICAvLyBXaGVuIHNwZWFrIGlzIGNhbGxlZCB3ZSBzaG91bGQgbm90IGhhdmUgYW4g
ZXhpc3Rpbmcgc3BlZWNoIHV0dGVyYW5jZSBvdXRzdGFuZGluZy4NCiAgICAgQVNTRVJUKCFtX3V0
dGVyYW5jZSk7DQogICAgIEFTU0VSVCh1dHRlcmFuY2UpOw0KLQ0KICAgICBpZiAoIXV0dGVyYW5j
ZSkNCiAgICAgICAgIHJldHVybjsNCi0NCisgICAgDQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUw0KICAgICBpZiAoIW1fc3ludGhlc2l6ZXIpIHsNCiAgICAgICAgIG1fc3ludGhlc2l6
ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZTcGVlY2hTeW50aGVzaXplckluc3RhbmNlKCkgaW5p
dF0pOw0KICAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0RGVsZWdhdGU6c2VsZl07DQogICAgIH0N
Ci0NCisgICAgDQogICAgIC8vIENob29zZSB0aGUgYmVzdCB2b2ljZSwgYnkgZmlyc3QgbG9va2lu
ZyBhdCB0aGUgdXR0ZXJhbmNlIHZvaWNlLCB0aGVuIHRoZSB1dHRlcmFuY2UgbGFuZ3VhZ2UsDQog
ICAgIC8vIHRoZW4gY2hvb3NlIHRoZSBkZWZhdWx0IGxhbmd1YWdlLg0KICAgICBXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlKiB1dHRlcmFuY2VWb2ljZSA9IHV0dGVyYW5jZS0+
dm9pY2UoKTsNCkBAIC0xMzksNiArMTQzLDEyIEBAIHN0YXRpYyBmbG9hdCBnZXRBVlNwZWVjaFV0
dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiAgICAgW2F2VXR0ZXJhbmNlIHNldFZvaWNlOmF2
Vm9pY2VdOw0KICAgICBtX3V0dGVyYW5jZSA9IFdURk1vdmUodXR0ZXJhbmNlKTsNCiANCisgICAg
Ly8gbWFjT1Mgd29uJ3Qgc2VuZCBhIGRpZCBzdGFydCBzcGVha2luZyBjYWxsYmFjayBmb3IgZW1w
dHkgc3RyaW5ncy4NCisjaWYgIUhBVkUoVU5JRklFRF9TUEVFQ0hTWU5USEVTSVNfRklYX0ZPUl84
MTQ2NTE2NCkNCisgICAgaWYgKCFtX3V0dGVyYW5jZS0+dGV4dCgpLmxlbmd0aCgpKQ0KKyAgICAg
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcoKm1fdXR0
ZXJhbmNlKTsNCisjZW5kaWYNCisNCiAgICAgW21fc3ludGhlc2l6ZXIgc3BlYWtVdHRlcmFuY2U6
YXZVdHRlcmFuY2VdOw0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TDQogfQ0KQEAgLTE2
Myw2ICsxNzMsMTMgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNw
ZWVjaFJhdGUoKQ0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TDQogfQ0KIA0KKy0gKHZv
aWQpcmVzZXRTdGF0ZQ0KK3sNCisgICAgLy8gT24gYSByZXNldCwgY2FuY2VsIHV0dGVyYW5jZSBh
bmQgc2V0IHRvIG5pbCBpbW1lZGlhdGVseSBzbyB0aGUgbmV4dCBzcGVlY2ggam9iIGNvbnRpbnVl
cyB3aXRob3V0IHdhaXRpbmcgZm9yIGEgY2FsbGJhY2sNCisgICAgW3NlbGYgY2FuY2VsXTsNCisg
ICAgbV91dHRlcmFuY2UgPSBuaWw7DQorfQ0KKw0KIC0gKHZvaWQpY2FuY2VsDQogew0KICAgICBp
ZiAoIW1fdXR0ZXJhbmNlKQ0KQEAgLTE5MSwxMCArMjA4LDEwIEBAIHN0YXRpYyBmbG9hdCBnZXRB
VlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiAgICAgICAgIHJldHVybjsNCiAN
CiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNw
ZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRlbHkuDQotICAgIFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcGxhdGZvcm1V
dHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsNCisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwcm90ZWN0ZWRVdHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsN
CiAgICAgbV91dHRlcmFuY2UgPSBudWxscHRyOw0KIA0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0
LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnBsYXRmb3JtVXR0ZXJhbmNlKTsNCisgICAg
bV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCpwcm90ZWN0
ZWRVdHRlcmFuY2UpOw0KIH0NCiANCiAtICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihBVlNwZWVj
aFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXIgZGlkUGF1c2VTcGVlY2hVdHRlcmFuY2U6KEFWU3Bl
ZWNoVXR0ZXJhbmNlICopdXR0ZXJhbmNlDQpAQCAtMjI1LDEwICsyNDIsMTAgQEAgc3RhdGljIGZs
b2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAgICAgICAgcmV0
dXJuOw0KIA0KICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBm
aW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4N
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBw
bGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3RlY3RlZFV0dGVyYW5jZSA9IG1fdXR0
ZXJhbmNlOw0KICAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7DQogDQotICAgIG1fc3ludGhlc2l6
ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqcGxhdGZvcm1VdHRlcmFuY2Up
Ow0KKyAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmco
KnByb3RlY3RlZFV0dGVyYW5jZSk7DQogfQ0KIA0KIC0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6
KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciB3aWxsU3BlYWtSYW5nZU9mU3BlZWNo
U3RyaW5nOihOU1JhbmdlKWNoYXJhY3RlclJhbmdlIHV0dGVyYW5jZTooQVZTcGVlY2hVdHRlcmFu
Y2UgKil1dHRlcmFuY2UNCkBAIC0yMzksNyArMjU2LDcgQEAgc3RhdGljIGZsb2F0IGdldEFWU3Bl
ZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0K
ICAgICAgICAgcmV0dXJuOw0KIA0KLSAgICAvLyBpT1Mgb25seSBzdXBwb3J0cyB3b3JkIGJvdW5k
YXJpZXMuDQorICAgIC8vIEFWU3BlZWNoU3ludGhlc2l6ZXIgb25seSBzdXBwb3J0cyB3b3JkIGJv
dW5kYXJpZXMuDQogICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5ib3VuZGFyeUV2
ZW50T2NjdXJyZWQoKm1fdXR0ZXJhbmNlLCBXZWJDb3JlOjpTcGVlY2hCb3VuZGFyeTo6U3BlZWNo
V29yZEJvdW5kYXJ5LCBjaGFyYWN0ZXJSYW5nZS5sb2NhdGlvbik7DQogfQ0KIA0KQEAgLTI3NSw3
ICsyOTIsOSBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVWb2lj
ZUxpc3QoKQ0KICAgICAgICAgICAgIGluY2x1ZGVWb2ljZSA9IHZvaWNlLnF1YWxpdHkgPT0gQVZT
cGVlY2hTeW50aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0Ow0KICAgICAgICAgaWYgKGluY2x1ZGVW
b2ljZSkNCiAjZWxzZQ0KLSAgICAgICAgaWYgKHZvaWNlLnF1YWxpdHkgPT0gQVZTcGVlY2hTeW50
aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0KQ0KKyAgICAgICAgLy8gQVZTcGVlY2hTeW50aGVzaXMg
b24gbWFjT1MgZG9lcyBub3Qgc3VwcG9ydCBxdWFsaXR5IHByb3BlcnR5IGNvcnJlY3RseS4NCisg
ICAgICAgIGlmICh2b2ljZS5xdWFsaXR5ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5
RGVmYXVsdA0KKyAgICAgICAgICAgIHx8IChUQVJHRVRfT1NfT1NYICYmICFbdm9pY2VVUkkgaGFz
U3VmZml4OkAicHJlbWl1bSJdKSkNCiAjZW5kaWYNCiAgICAgICAgICAgICBtX3ZvaWNlTGlzdC5h
cHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRlKHZvaWNlVVJJLCBuYW1l
LCBsYW5ndWFnZSwgdHJ1ZSwgaXNEZWZhdWx0KSk7DQogICAgIH0NCkBAIC0zMDcsOSArMzI2LDkg
QEAgdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5jZWwoKQ0KIA0KIHZvaWQgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cmVzZXRTdGF0ZSgpDQogew0KLSAgICBbbV9wbGF0Zm9y
bVNwZWVjaFdyYXBwZXIgY2FuY2VsXTsNCisgICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHJl
c2V0U3RhdGVdOw0KIH0NCiANCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQogDQotI2VuZGlmIC8v
IEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNlbmRp
ZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oQ09DT0EpDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1hYy5tbQ0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCBmYTc0NjVmZjc1
OWIuLjAwMDAwMDAwMDAwMA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0NCisrKyAvZGV2L251bGwNCkBAIC0xLDI4OSArMCww
IEBADQotLyoNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotICogYXJl
IG1ldDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSAqDQotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZDQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUN
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUg0KLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLA0KLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywNCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1INCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZDQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCi0gKi8NCi0NCi0jaW1wb3J0ICJjb25maWcuaCINCi0jaW1wb3J0ICJQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgiDQotDQotI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKSAmJiBQTEFURk9STShNQUMpDQotDQotI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UuaCINCi0jaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmgi
DQotI2ltcG9ydCA8QXBwS2l0L05TU3BlZWNoU3ludGhlc2l6ZXIuaD4NCi0jaW1wb3J0IDxwYWwv
c3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaD4NCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
DQotDQotQGludGVyZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8TlNT
cGVlY2hTeW50aGVzaXplckRlbGVnYXRlPg0KLXsNCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCi0gICAgLy8gSG9sZCBhIFJlZiB0
byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFyIHVudGlsIHRoZSBzeW50
aCBpcyBkb25lIHdpdGggaXQuDQotICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlKiBtX3V0dGVyYW5jZTsNCi0NCi0gICAgUmV0YWluUHRyPE5TU3BlZWNoU3ludGhl
c2l6ZXI+IG1fc3ludGhlc2l6ZXI7DQotICAgIGZsb2F0IG1fYmFzZVBpdGNoOw0KLX0NCi0NCi0t
IChXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyICopaW5pdFdpdGhTcGVlY2hTeW50aGVzaXplcjoo
V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVyOw0KLS0gKHZv
aWQpc3BlYWtVdHRlcmFuY2U6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlICopdXR0ZXJhbmNlOw0KLQ0KLUBlbmQNCi0NCi1AaW1wbGVtZW50YXRpb24gV2ViU3BlZWNo
U3ludGhlc2lzV3JhcHBlcg0KLQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0
V2l0aFNwZWVjaFN5bnRoZXNpemVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
ICopc3ludGhlc2l6ZXINCi17DQotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQ0KLSAg
ICAgICAgcmV0dXJuIG5pbDsNCi0NCi0gICAgbV9zeW50aGVzaXplck9iamVjdCA9IHN5bnRoZXNp
emVyOw0KLSAgICBbc2VsZiB1cGRhdGVCYXNlUGl0Y2hGb3JTeW50aGVzaXplcl07DQotICAgIHJl
dHVybiBzZWxmOw0KLX0NCi0NCi0vLyBOU1NwZWVjaFN5bnRoZXNpemVyIGV4cGVjdHMgYSBXb3Jk
cyBwZXIgTWludXRlIChXUE0pIHJhdGUuIFRoZXJlIGlzIG5vIHByZXNldCBkZWZhdWx0DQotLy8g
YnV0IHRoZXkgcmVjb21tZW5kIHRoYXQgbm9ybWFsIHNwZWFraW5nIGlzIDE4MC0yMjAgV1BNDQot
LSAoZmxvYXQpY29udmVydFJhdGVUb1dQTTooZmxvYXQpcmF0ZQ0KLXsNCi0gICAgLy8gV2UnbGwg
c2F5IDIwMCBXUE0gaXMgdGhlIGRlZmF1bHQgMXggdmFsdWUuDQotICAgIHJldHVybiAyMDAuMGYg
KiByYXRlOw0KLX0NCi0NCi0tIChmbG9hdCljb252ZXJ0UGl0Y2hUb05TU3BlZWNoVmFsdWU6KGZs
b2F0KXBpdGNoDQotew0KLSAgICAvLyBUaGlzIGFsbG93cyB0aGUgYmFzZSBwaXRjaCB0byByYW5n
ZSBmcm9tIDAlIC0gMjAwJSBvZiB0aGUgbm9ybWFsIHBpdGNoLg0KLSAgICByZXR1cm4gbV9iYXNl
UGl0Y2ggKiBwaXRjaDsNCi19DQotDQotLSAodm9pZCl1cGRhdGVCYXNlUGl0Y2hGb3JTeW50aGVz
aXplcg0KLXsNCi0gICAgLy8gUmVzZXQgdGhlIGJhc2UgcGl0Y2ggd2hlbmV2ZXIgd2UgY2hhbmdl
IHZvaWNlcywgc2luY2UgdGhlIGJhc2UgcGl0Y2ggaXMgZGlmZmVyZW50IGZvciBlYWNoIHZvaWNl
Lg0KLSAgICBbbV9zeW50aGVzaXplciBzZXRPYmplY3Q6bmlsIGZvclByb3BlcnR5Ok5TU3BlZWNo
UmVzZXRQcm9wZXJ0eSBlcnJvcjpuaWxdOw0KLSAgICBtX2Jhc2VQaXRjaCA9IFtbbV9zeW50aGVz
aXplciBvYmplY3RGb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IGVycm9yOm5p
bF0gZmxvYXRWYWx1ZV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlYWtVdHRlcmFuY2U6KFdlYkNvcmU6
OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlICopdXR0ZXJhbmNlDQotew0KLSAgICAv
LyBXaGVuIHNwZWFrIGlzIGNhbGxlZCB3ZSBzaG91bGQgbm90IGhhdmUgYW4gZXhpc3Rpbmcgc3Bl
ZWNoIHV0dGVyYW5jZSBvdXRzdGFuZGluZy4NCi0gICAgQVNTRVJUKCFtX3V0dGVyYW5jZSk7DQot
ICAgIEFTU0VSVCh1dHRlcmFuY2UpOw0KLQ0KLSAgICBpZiAoIW1fc3ludGhlc2l6ZXIpIHsNCi0g
ICAgICAgIG1fc3ludGhlc2l6ZXIgPSBhZG9wdE5TKFtbTlNTcGVlY2hTeW50aGVzaXplciBhbGxv
Y10gaW5pdFdpdGhWb2ljZTpuaWxdKTsNCi0gICAgICAgIFttX3N5bnRoZXNpemVyIHNldERlbGVn
YXRlOnNlbGZdOw0KLSAgICB9DQotDQotICAgIC8vIEZpbmQgaWYgd2Ugc2hvdWxkIHVzZSBhIHNw
ZWNpZmljIHZvaWNlIGJhc2VkIG9uIHRoZSB2b2ljZVVSSSBpbiB1dHRlcmFuY2UuDQotICAgIC8v
IE90aGVyd2lzZSwgZmluZCB0aGUgdm9pY2UgdGhhdCBtYXRjaGVzIHRoZSBsYW5ndWFnZS4gVGhl
IE1hYyBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZvaWNlIHBlciBsYW5ndWFnZSwgc28gdGhlIGZp
cnN0DQotICAgIC8vIG9uZSB3aWxsIGhhdmUgdG8gZG8uDQotDQotICAgIFdlYkNvcmU6OlBsYXRm
b3JtU3BlZWNoU3ludGhlc2lzVm9pY2UqIHV0dGVyYW5jZVZvaWNlID0gdXR0ZXJhbmNlLT52b2lj
ZSgpOw0KLSAgICAvLyBJZiBubyB2b2ljZSB3YXMgc3BlY2lmaWVkLCB0cnkgdG8gbWF0Y2ggYnkg
bGFuZ3VhZ2UuDQotICAgIGlmICghdXR0ZXJhbmNlVm9pY2UgJiYgIXV0dGVyYW5jZS0+bGFuZygp
LmlzRW1wdHkoKSkgew0KLSAgICAgICAgZm9yIChhdXRvJiB2b2ljZSA6IG1fc3ludGhlc2l6ZXJP
YmplY3QtPnZvaWNlTGlzdCgpKSB7DQotICAgICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UodXR0ZXJhbmNlLT5sYW5nKCksIHZvaWNlLT5sYW5nKCkpKSB7DQotICAgICAgICAgICAg
ICAgIHV0dGVyYW5jZVZvaWNlID0gdm9pY2UuZ2V0KCk7DQotICAgICAgICAgICAgICAgIGlmICh2
b2ljZS0+aXNEZWZhdWx0KCkpDQotICAgICAgICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAg
ICAgICB9DQotICAgICAgICB9DQotICAgIH0NCi0NCi0gICAgTlNTdHJpbmcgKnZvaWNlVVJJID0g
bmlsOw0KLSAgICBpZiAodXR0ZXJhbmNlVm9pY2UpDQotICAgICAgICB2b2ljZVVSSSA9IHV0dGVy
YW5jZVZvaWNlLT52b2ljZVVSSSgpOw0KLSAgICBlbHNlDQotICAgICAgICB2b2ljZVVSSSA9IFtO
U1NwZWVjaFN5bnRoZXNpemVyIGRlZmF1bHRWb2ljZV07DQotDQotICAgIC8vIERvbid0IHNldCB0
aGUgdm9pY2UgdW5sZXNzIG5lY2Vzc2FyeS4gVGhlcmUncyBhIGJ1ZyBpbiBOU1NwZWVjaFN5bnRo
ZXNpemVyIHN1Y2ggdGhhdA0KLSAgICAvLyBzZXR0aW5nIHRoZSB2b2ljZSBmb3IgdGhlIGZpcnN0
IHRpbWUgd2lsbCBjYXVzZSB0aGUgZmlyc3Qgc3BlZWNoRG9uZSBjYWxsYmFjayB0byByZXBvcnQg
aXQgd2FzIHVuc3VjY2Vzc2Z1bC4NCi0gICAgQk9PTCB1cGRhdGVQaXRjaCA9IE5POw0KLSAgICBp
ZiAoIVtbbV9zeW50aGVzaXplciB2b2ljZV0gaXNFcXVhbFRvU3RyaW5nOnZvaWNlVVJJXSkgew0K
LSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0Vm9pY2U6dm9pY2VVUkldOw0KLSAgICAgICAgLy8g
UmVzZXQgdGhlIGJhc2UgcGl0Y2ggd2hlbmV2ZXIgd2UgY2hhbmdlIHZvaWNlcy4NCi0gICAgICAg
IHVwZGF0ZVBpdGNoID0gWUVTOw0KLSAgICB9DQotDQotICAgIGlmIChtX2Jhc2VQaXRjaCA9PSAw
IHx8IHVwZGF0ZVBpdGNoKQ0KLSAgICAgICAgW3NlbGYgdXBkYXRlQmFzZVBpdGNoRm9yU3ludGhl
c2l6ZXJdOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJl
cldpdGhGbG9hdDpbc2VsZiBjb252ZXJ0UGl0Y2hUb05TU3BlZWNoVmFsdWU6dXR0ZXJhbmNlLT5w
aXRjaCgpXV0gZm9yUHJvcGVydHk6TlNTcGVlY2hQaXRjaEJhc2VQcm9wZXJ0eSBlcnJvcjpuaWxd
Ow0KLSAgICBbbV9zeW50aGVzaXplciBzZXRSYXRlOltzZWxmIGNvbnZlcnRSYXRlVG9XUE06dXR0
ZXJhbmNlLT5yYXRlKCldXTsNCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0Vm9sdW1lOnV0dGVyYW5j
ZS0+dm9sdW1lKCldOw0KLQ0KLSAgICBtX3V0dGVyYW5jZSA9IHV0dGVyYW5jZTsNCi0gICAgW21f
c3ludGhlc2l6ZXIgc3RhcnRTcGVha2luZ1N0cmluZzp1dHRlcmFuY2UtPnRleHQoKV07DQotICAg
IG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRTdGFydFNwZWFraW5nKCptX3V0dGVy
YW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpcGF1c2UNCi17DQotICAgIGlmICghbV91dHRlcmFuY2Up
DQotICAgICAgICByZXR1cm47DQotDQotICAgIFttX3N5bnRoZXNpemVyIHBhdXNlU3BlYWtpbmdB
dEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAgICBtX3N5bnRoZXNpemVy
T2JqZWN0LT5jbGllbnQoKS0+ZGlkUGF1c2VTcGVha2luZygqbV91dHRlcmFuY2UpOw0KLX0NCi0N
Ci0tICh2b2lkKXJlc3VtZQ0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJl
dHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgY29udGludWVTcGVha2luZ107DQotICAgIG1f
c3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRSZXN1bWVTcGVha2luZygqbV91dHRlcmFu
Y2UpOw0KLX0NCi0NCi0tICh2b2lkKWNhbmNlbA0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkN
Ci0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgc3RvcFNwZWFraW5nQXRC
b3VuZGFyeTpOU1NwZWVjaEltbWVkaWF0ZUJvdW5kYXJ5XTsNCi0gICAgbV9zeW50aGVzaXplck9i
amVjdC0+Y2xpZW50KCktPnNwZWFraW5nRXJyb3JPY2N1cnJlZCgqbV91dHRlcmFuY2UpOw0KLSAg
ICBtX3V0dGVyYW5jZSA9IDA7DQotfQ0KLQ0KLS0gKHZvaWQpaW52YWxpZGF0ZQ0KLXsNCi0gICAg
bV91dHRlcmFuY2UgPSAwOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXREZWxlZ2F0ZTpuaWxdOw0K
LSAgICBbbV9zeW50aGVzaXplciBzdG9wU3BlYWtpbmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRp
YXRlQm91bmRhcnldOw0KLX0NCi0NCi0tICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihOU1NwZWVj
aFN5bnRoZXNpemVyICopc2VuZGVyIGRpZEZpbmlzaFNwZWFraW5nOihCT09MKWZpbmlzaGVkU3Bl
YWtpbmcNCi17DQotICAgIGlmICghbV91dHRlcmFuY2UpDQotICAgICAgICByZXR1cm47DQotDQot
ICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOw0KLQ0KLSAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFu
Y2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFr
aW5nIGpvYiBpbW1lZGlhdGVseS4NCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UqIHV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KLSAgICBtX3V0dGVyYW5jZSA9
IDA7DQotDQotICAgIGlmIChmaW5pc2hlZFNwZWFraW5nKQ0KLSAgICAgICAgbV9zeW50aGVzaXpl
ck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCp1dHRlcmFuY2UpOw0KLSAgICBl
bHNlDQotICAgICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJv
ck9jY3VycmVkKCp1dHRlcmFuY2UpOw0KLX0NCi0NCi0tICh2b2lkKXNwZWVjaFN5bnRoZXNpemVy
OihOU1NwZWVjaFN5bnRoZXNpemVyICopc2VuZGVyIHdpbGxTcGVha1dvcmQ6KE5TUmFuZ2UpY2hh
cmFjdGVyUmFuZ2Ugb2ZTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nDQotew0KLSAgICBVTlVTRURf
UEFSQU0oc2VuZGVyKTsNCi0gICAgVU5VU0VEX1BBUkFNKHN0cmluZyk7DQotDQotICAgIGlmICgh
bV91dHRlcmFuY2UpDQotICAgICAgICByZXR1cm47DQotDQotICAgIC8vIE1hYyBwbGF0Zm9ybSBv
bmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+
Y2xpZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdlYkNvcmU6OlNw
ZWVjaEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdlLmxvY2F0aW9u
KTsNCi19DQotDQotQGVuZA0KLQ0KLW5hbWVzcGFjZSBXZWJDb3JlIHsNCi0NCi1QbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJDbGllbnQqIGNsaWVudCkNCi0gICAgOiBtX3NwZWVjaFN5bnRoZXNpemVyQ2xp
ZW50KGNsaWVudCkNCi17DQotfQ0KLQ0KLVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6On5QbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBl
ciBpbnZhbGlkYXRlXTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRkFycmF5UmVmPiBzcGVl
Y2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCkNCi17DQotICAgIC8vIEdldCBhbGwgdGhl
IHZvaWNlcyBvZmZlcmVkIGJ5IFRUUy4NCi0gICAgLy8gQnkgZGVmYXVsdCBzcGVlY2ggb25seSBy
ZXR1cm5zICJwcmVtaXVtIiB2b2ljZXMsIHdoaWNoIGRvZXMgbm90IGluY2x1ZGUgYWxsIHRoZQ0K
LSAgICAvLyBpbnRlcm5hdGlvbmFsIHZvaWNlcy4gVGhpcyBhbGxvd3MgdXMgdG8gb2ZmZXIgc3Bl
ZWNoIHN5bnRoZXNpcyBmb3IgYWxsIHN1cHBvcnRlZCBsYW5ndWFnZXMuDQotICAgIHJldHVybiBh
ZG9wdENGKENvcHlTcGVlY2hTeW50aGVzaXNWb2ljZXNGb3JNb2RlKChfX2JyaWRnZSBDRkFycmF5
UmVmKUBbIEAiVm9pY2VHcm91cERlZmF1bHQiLCBAIlZvaWNlR3JvdXBDb21wYWN0IiBdKSk7DQot
fQ0KLQ0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNwZWVjaFN5bnRoZXNpc0dldERl
ZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JMb2NhbGUoTlNMb2NhbGUgKnVzZXJMb2NhbGUpDQotew0K
LSAgICBpZiAoIXVzZXJMb2NhbGUpDQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSNpZiBIQVZF
KFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotICAgIHJldHVybiBhZG9wdENGKENvcHlJ
ZGVudGlmaWVyU3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5
bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVm
KXVzZXJMb2NhbGUpKTsNCi0jZWxzZQ0KLSAgICByZXR1cm4gR2V0SWRlbnRpZmllclN0cmluZ0Zv
clByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShzcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlk
ZW50aWZpZXJzKCkuZ2V0KCksIChfX2JyaWRnZSBDRkxvY2FsZVJlZil1c2VyTG9jYWxlKTsNCi0j
ZW5kaWYNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjppbml0aWFsaXpl
Vm9pY2VMaXN0KCkNCi17DQotICAgIGF1dG8gYXZhaWxhYmxlVm9pY2VzID0gc3BlZWNoU3ludGhl
c2lzR2V0Vm9pY2VJZGVudGlmaWVycygpOw0KLSAgICBOU1VJbnRlZ2VyIGNvdW50ID0gWyhfX2Jy
aWRnZSBOU0FycmF5ICopYXZhaWxhYmxlVm9pY2VzLmdldCgpIGNvdW50XTsNCi0gICAgZm9yIChO
U1VJbnRlZ2VyIGsgPSAwOyBrIDwgY291bnQ7IGsrKykgew0KLSAgICAgICAgTlNTdHJpbmcgKnZv
aWNlTmFtZSA9IFsoX19icmlkZ2UgTlNBcnJheSAqKWF2YWlsYWJsZVZvaWNlcy5nZXQoKSBvYmpl
Y3RBdEluZGV4OmtdOw0KLSAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW05TU3Bl
ZWNoU3ludGhlc2l6ZXIgYXR0cmlidXRlc0ZvclZvaWNlOnZvaWNlTmFtZV07DQotDQotICAgICAg
ICBOU1N0cmluZyAqdm9pY2VVUkkgPSBbYXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUlk
ZW50aWZpZXJdOw0KLSAgICAgICAgTlNTdHJpbmcgKm5hbWUgPSBbYXR0cmlidXRlcyBvYmplY3RG
b3JLZXk6TlNWb2ljZU5hbWVdOw0KLSAgICAgICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gW2F0dHJp
YnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TVm9pY2VMb2NhbGVJZGVudGlmaWVyXTsNCi0gICAgICAgIGF1
dG8gZGVmYXVsdFZvaWNlVVJJID0gc3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRp
ZmllckZvckxvY2FsZShhZG9wdE5TKFtbTlNMb2NhbGUgYWxsb2NdIGluaXRXaXRoTG9jYWxlSWRl
bnRpZmllcjpsYW5ndWFnZV0pLmdldCgpKTsNCi0NCi0gICAgICAgIC8vIENoYW5nZSB0byBCQ1At
NDcgZm9ybWF0IGFzIGRlZmluZWQgYnkgc3BlYy4NCi0gICAgICAgIGxhbmd1YWdlID0gW2xhbmd1
YWdlIHN0cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNPZlN0cmluZzpAIl8iIHdpdGhTdHJpbmc6
QCItIl07DQotDQotICAgICAgICBib29sIGlzRGVmYXVsdCA9IFsoX19icmlkZ2UgTlNTdHJpbmcg
KilkZWZhdWx0Vm9pY2VVUkkuZ2V0KCkgaXNFcXVhbFRvU3RyaW5nOnZvaWNlVVJJXTsNCi0NCi0g
ICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpj
cmVhdGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQpKTsNCi0gICAg
fQ0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnBhdXNlKCkNCi17DQot
ICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBwYXVzZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplcjo6cmVzdW1lKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNo
V3JhcHBlciByZXN1bWVdOw0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6
OnNwZWFrKFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4mJiB1dHRlcmFu
Y2UpDQotew0KLSAgICBpZiAoIW1fcGxhdGZvcm1TcGVlY2hXcmFwcGVyKQ0KLSAgICAgICAgbV9w
bGF0Zm9ybVNwZWVjaFdyYXBwZXIgPSBhZG9wdE5TKFtbV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBl
ciBhbGxvY10gaW5pdFdpdGhTcGVlY2hTeW50aGVzaXplcjp0aGlzXSk7DQotDQotICAgIFttX3Bs
YXRmb3JtU3BlZWNoV3JhcHBlciBzcGVha1V0dGVyYW5jZTp1dHRlcmFuY2UuZ2V0KCldOw0KLX0N
Ci0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmNhbmNlbCgpDQotew0KLSAgICBb
bV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgY2FuY2VsXTsNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyOjpyZXNldFN0YXRlKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNo
V3JhcHBlciBjYW5jZWxdOw0KLX0NCi0NCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQotDQotI2Vu
ZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShNQUMpDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZw0K
aW5kZXggODAxYTc1MmJmYzVmLi4yNWNjNTcwMjdiMWYgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEs
MjIgQEANCisyMDIxLTExLTI3ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+
DQorDQorICAgICAgICBBWDogVW5pZnkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdl
IGZvciBNYWMvaU9TDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxODk1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQorICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIENyZWF0ZSBhIG5l
dyBtZXNzYWdlIGZvciByZXNldHRpbmcgc3BlZWNoIHN5bnRoZXNpcyBzdGF0ZSB3aGVuIHRoZSBE
T01XaW5kb3cgY2hhbmdlcw0KKyAgICAgICAgYnV0IHRoZSBQYWdlIChhbmQgaXRzIHJlZmVyZW5j
ZWQgc3BlZWNoIHN5bnRoZXNpcykgc3RheXMgdGhlIHNhbWUuDQorDQorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpz
cGVlY2hTeW50aGVzaXNSZXNldFN0YXRlKToNCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOg0K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5jcHA6DQorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnJl
c2V0U3RhdGUpOg0KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFN5bnRoZXNpc0NsaWVudC5oOg0KKw0KIDIwMjEtMTEtMjMgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4NCiANCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBt
aWQgTm92ZW1iZXIgMjAyMSBlZGl0aW9uDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHANCmluZGV4IGY2YWI4MDlkYzhjNC4uNDQ5NTcwOWI1ZjI1IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KQEAgLTEwNTE1LDYgKzEwNTE1LDExIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpzcGVlY2hTeW50aGVzaXNDYW5jZWwoKQ0KICAgICBzcGVlY2hT
eW50aGVzaXNEYXRhKCkuc3ludGhlc2l6ZXItPmNhbmNlbCgpOw0KIH0NCiANCit2b2lkIFdlYlBh
Z2VQcm94eTo6c3BlZWNoU3ludGhlc2lzUmVzZXRTdGF0ZSgpDQorew0KKyAgICBzcGVlY2hTeW50
aGVzaXNEYXRhKCkuc3ludGhlc2l6ZXItPnJlc2V0U3RhdGUoKTsNCit9DQorDQogdm9pZCBXZWJQ
YWdlUHJveHk6OnNwZWVjaFN5bnRoZXNpc1BhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikNCiB7DQogICAgIHNwZWVjaFN5bnRoZXNpc0RhdGEoKS5zcGVh
a2luZ1BhdXNlZENvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcik7
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaA0KaW5kZXggNTNiYjZkNWRkMTBj
Li5iMmY1NjVmZjA1NDMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaA0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgN
CkBAIC0xODEyLDYgKzE4MTIsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lz
Q2FuY2VsKCk7DQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzUGF1c2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsNCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXN1bWUoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsNCisgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXNldFN0YXRl
KCk7DQogI2VuZGlmDQogDQogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3Qg
U3RyaW5nJiwgV1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7DQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQppbmRleCA2MmFlYjU4
N2Y3YzguLjA4Nzc4YWU2NTQ0OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbg0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQpAQCAtNTQ0LDYgKzU0NCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7DQogICAgIFNwZWVjaFN5bnRoZXNpc0NhbmNlbCgpDQogICAgIFNwZWVj
aFN5bnRoZXNpc1BhdXNlKCkgLT4gKCkgQXN5bmMNCiAgICAgU3BlZWNoU3ludGhlc2lzUmVzdW1l
KCkgLT4gKCkgQXN5bmMNCisgICAgU3BlZWNoU3ludGhlc2lzUmVzZXRTdGF0ZSgpDQogI2VuZGlm
DQogDQogI2lmIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmNwcA0KaW5kZXggOWExOTE2YWE4NmQ5Li5jNGQwZGNjMDNkNWQgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcA0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHANCkBAIC01NSw2ICs1NSwx
MSBAQCBXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlciogV2ViU3BlZWNoU3lu
dGhlc2lzQ2xpZW50Ojpjb3JlUGFnZU9ic2Vydg0KICAgICByZXR1cm4gbnVsbHB0cjsNCiB9DQog
DQordm9pZCBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnJlc2V0U3RhdGUoKQ0KK3sNCisgICAg
bV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3BlZWNoU3ludGhlc2lzUmVzZXRT
dGF0ZSgpKTsNCit9DQorDQogdm9pZCBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnNwZWFrKFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJhbmNl
KQ0KIHsNCiAgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IHN0YXJ0ZWRDb21wbGV0
aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSgpIG11dGFi
bGUgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaA0KaW5kZXggN2JkODc1OTA1
YTY1Li45NmQ4ZTIzYTlhMTkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQu
aA0KQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOg0KIHByaXZhdGU6DQogICAgIHZvaWQgc2V0T2Jz
ZXJ2ZXIoV2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlcj4gb2Jz
ZXJ2ZXIpIG92ZXJyaWRlIHsgbV9vYnNlcnZlciA9IG9ic2VydmVyOyB9DQogICAgIFdlYWtQdHI8
V2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzQ2xpZW50T2JzZXJ2ZXI+IG9ic2VydmVyKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQ0KKyAgICB2b2lkIHJlc2V0U3RhdGUoKSBv
dmVycmlkZTsNCiANCiAgICAgV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzQ2xpZW50T2JzZXJ2ZXIq
IGNvcmVQYWdlT2JzZXJ2ZXIoKSBjb25zdDsNCiAgICAgDQo=
</data>
<flag name="commit-queue"
          id="470364"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445226</attachid>
            <date>2021-11-27 16:32:05 -0800</date>
            <delta_ts>2021-11-27 16:33:56 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>50594</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMjI2YTY1OGJmNDUwLi45NGNjMTQ1ZmFjMmYgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NSBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBmYXN0L3NwZWVj
aHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50
eHQ6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoNCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6DQorDQogMjAyMS0xMS0yMyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+DQogDQogICAgICAgICBDU1A6
IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb24gZXZlbnQgaXMgYWx3YXlzIHVzaW5nIGRvY3VtZW50
IGFzIHRhcmdldA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHkt
c3RyaW5nLWV4cGVjdGVkLnR4dA0KaW5kZXggMGEwM2ZmOTJjYTYyLi42Nzc4ZWI2MWFjZTQgMTAw
NjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhl
c2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50eHQNCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4
cGVjdGVkLnR4dA0KQEAgLTUsNiArNSw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFDQogDQog
UEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgZmFsc2UNCiBQQVNTIGV2ZW50LmVsYXBz
ZWRUaW1lID4gMCBpcyB0cnVlDQorUEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgdHJ1
ZQ0KK1BBU1MgZXZlbnQuZWxhcHNlZFRpbWUgPiAwIGlzIHRydWUNCiBQQVNTIHNwZWVjaFN5bnRo
ZXNpcy5zcGVha2luZyBpcyBmYWxzZQ0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUN
CiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZw0KaW5kZXggNWEyMGE3MWYzZDY4Li4yODY3
ZTQ0Y2I4MTEgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
DQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEz
IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0K
Kw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBm
b3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQu
dHh0Og0KKw0KIDIwMjEtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPg0KIA0KICAgICAgICAgQ1NQOiBzZWN1cml0eSBwb2xpY3kgdmlvbGF0aW9uIGV2ZW50
IGlzIGFsd2F5cyB1c2luZyBkb2N1bWVudCBhcyB0YXJnZXQNCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3lu
dGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2
ZW50cy1leHBlY3RlZC50eHQNCmluZGV4IGRjOTFhOGIxYTYxMy4uMjg0YTcyYTEyOTUzIDEwMDY0
NA0KLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVl
Y2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQudHh0DQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3Bl
ZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQNCkBAIC0xLDQgKzEsNCBAQA0K
IA0KLUZBSUwgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVuZCBldmVu
dHMgd2l0aCBlbXB0eSB1dHRlcmFuY2UgYXNzZXJ0X3RydWU6IE5vdCBleHBlY3RpbmcgZXZlbnQs
IGJ1dCBnb3QgZW5kIGV2ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlDQorUEFTUyBzcGVlY2hT
eW50aGVzaXMuc3BlYWsoKSBmaXJlcyBzdGFydCBhbmQgZW5kIGV2ZW50cyB3aXRoIGVtcHR5IHV0
dGVyYW5jZQ0KIFBBU1Mgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVu
ZCBldmVudHMNCiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IDg0NzFmMjIyYzUzMy4uNmFkNDA1NmI4MDE5IDEwMDY0NA0KLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zDQorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC03MCw5ICs3MCw5IEBA
IGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXJlY29yZGVyLmh0bWwgWyBTa2lwIF0NCiBo
dHRwL3dwdC9hdWRpby1vdXRwdXQgWyBTa2lwIF0NCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2F1ZGlvLW91dHB1dCBbIFNraXAgXQ0KIA0KLWZhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tYWZ0ZXItZ3VtLmh0bWwgWyBTa2lwIF0NCi1mYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLWFmdGVyLWRlbmllZC1ndW0uaHRtbCBbIFNraXAg
XQ0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hTeW50
aGVzaXMtcGF1c2UtcmVzdW1lLnRlbnRhdGl2ZS5odG1sIFsgU2tpcCBdDQorZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi1hZnRlci1ndW0uaHRtbCBbIFNraXAgXSANCitm
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLWFmdGVyLWRlbmllZC1ndW0u
aHRtbCBbIFNraXAgXSANCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1h
cGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy5odG1sIFsgU2tpcCBdDQogDQogIyBEYXRh
bGlzdCBpcyB1bnN1cHBvcnRlZCBpbiBXSzENCiBhY2Nlc3NpYmlsaXR5L2RhdGFsaXN0Lmh0bWwg
WyBXb250Rml4IF0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMNCmluZGV4IGQ2Y2VkODYwZGYxYS4uNTRhNDg3YTAxZGJkIDEwMDY0NA0KLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zDQorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC0xMjA4LDkgKzEyMDgs
NiBAQCB3ZWJraXQub3JnL2IvMTc5Nzk2IGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9kaXNr
LWNhY2hlLXZhbGlkYXRpb24tYmFjay1uYXZpZw0KICMgPHJkYXI6Ly9wcm9ibGVtLzY0NzAwNjU4
PiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2lk
bGhhcm5lc3MuaHR0cHMuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQgYW5kIGZsYWt5IGZhaWx1cmUN
CiBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9u
dC1sb2FkaW5nL2lkbGhhcm5lc3MuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0N
CiANCi0jIHJkYXI6Ly82NjcwMTgxNSAoUkVHUkVTU0lPTiAoMjBBMjMyMWEtMjBBMjM0OGIpOiBm
YXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy5o
dG1sIGlzIGEgZmxha3kgZmFpbHVyZSkNCi1bIEJpZ1N1cisgXSBmYXN0L3NwZWVjaHN5bnRoZXNp
cy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0NCi0NCiAjIHJkYXI6Ly82NjcwMzc3MyAoUkVHUkVTU0lPTiAoMjBBMjMxNi0yMEEyMzQ4Yik6
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3BsdWdpbi1ibG9ja2Vk
LWluLWFib3V0LWJsYW5rLXdpbmRvdy5odG1sIGlzIGEgY29uc3RhbnQgZmFpbHVyZSkNCiBbIGFy
bTY0IF0gaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2luLWJs
b2NrZWQtaW4tYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgWyBTa2lwIF0NCiANCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zDQppbmRleCA2ZGQ0NzFjZTRhZTMuLjU3ZDMz
ZjQzNzViNCAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucw0K
QEAgLTIwMzIsMTAgKzIwMzIsNiBAQCB3ZWJraXQub3JnL2IvMjE3NjQxIFsgRGVidWcgXSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9ldmVudC10aW1lb3V0Lg0KIA0KIHdlYmtp
dC5vcmcvYi8yMTc2MjAgaW5zcGVjdG9yL2F1ZGl0L2Jhc2ljLWFzeW5jLmh0bWwgWyBQYXNzIFRp
bWVvdXQgXQ0KIA0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9T
cGVlY2hTeW50aGVzaXMtc3BlYWstdHdpY2UuaHRtbCBbIFNraXAgXQ0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hTeW50aGVzaXMtc3BlYWstd2l0aG91
dC1hY3RpdmF0aW9uLWZhaWxzLnRlbnRhdGl2ZS5odG1sIFsgU2tpcCBdDQotd2Via2l0Lm9yZy9i
LzIyNzUwMSBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gt
YXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMuaHRtbCBbIFNraXAgXQ0KLQ0KIHdlYmtp
dC5vcmcvYi8yMTc2NjkgaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLXNw
aW5uaW5nLW1lc3NhZ2UuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdDQogDQogd2Via2l0Lm9y
Zy9iLzIxNzk5NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1vdXRw
dXQtY2hhbm5lbC1jb3VudC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0NCkBAIC0yMzAyLDgg
KzIyOTgsNiBAQCB3ZWJraXQub3JnL2IvMjI5MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbQ0KIA0KICNyZGFyOi8vODIxNDYzNjcg
KFtNYWMsIGlPUyBSZWxlYXNlXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2xheW91dC13b3JrbGV0LWNzcC5odHRwcy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZSkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9sYXlvdXQtd29ya2xldC1jc3Au
aHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdIA0KIA0KLXdlYmtpdC5vcmcvYi8yMjgzOTYgZmFz
dC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay1lbXB0eS1zdHJpbmcuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdDQotDQogd2Via2l0Lm9yZy9iLzIyODE3NiBbIE1vamF2ZSBDYXRh
bGluYSBCaWdTdXIgXSBmYXN0L3RleHQvdmFyaWFibGUtc3lzdGVtLWZvbnQuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQ0KIHdlYmtpdC5vcmcvYi8yMjgxNzYgWyBNb250ZXJleSBdIGZhc3QvdGV4
dC92YXJpYWJsZS1zeXN0ZW0tZm9udC5odG1sIFsgUGFzcyBdDQogDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KaW5kZXggZWFiM2IyMGRh
NWY0Li5iYWZmZmZiYjk1MzQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTMgQEANCisyMDIxLTExLTI3ICBD
aHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQorICAgICAgICBBWDogVW5p
Znkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdlIGZvciBNYWMvaU9TDQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODk1DQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4NCisNCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOg0KKw0KIDIwMjEt
MTEtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+DQogDQogICAgICAgICBb
TW9kZWxdIGFkZCBhdWRpbyBzdXBwb3J0DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaA0KaW5kZXggY2NlYzFl
ZmQxMWQyLi4wMjQ1M2M4YjM0NTIgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaA0KKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgNCkBAIC03NTcsNyAr
NzU3LDcgQEANCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgKFBMQVRGT1JNKElPUykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxNDAzMDANCisjaWYgKChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxNDAzMDApIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPiAxMjAwMDApDQogI2lm
ICFkZWZpbmVkKEhBVkVfQVZTUEVFQ0hTWU5USEVTSVNfU1lTVEVNVk9JQ0UpDQogI2RlZmluZSBI
QVZFX0FWU1BFRUNIU1lOVEhFU0lTX1NZU1RFTVZPSUNFIDENCiAjZW5kaWYNCkBAIC03NjksMTIg
Kzc2OSw2IEBADQogI2VuZGlmDQogI2VuZGlmDQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDANCi0jaWYgIWRlZmluZWQoSEFW
RV9TUEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLSNkZWZpbmUgSEFWRV9TUEVFQ0hTWU5U
SEVTSVNfTU9OVEVSRVlfU1BJIDENCi0jZW5kaWYNCi0jZW5kaWYNCi0NCiAjaWYgQ09NUElMRVIo
R0NDX0NPTVBBVElCTEUpICYmIGRlZmluZWQoX19oYXNfYXR0cmlidXRlKQ0KICNpZiBfX2hhc19h
dHRyaWJ1dGUob2JqY19kaXJlY3QpICYmICghUExBVEZPUk0oTUFDKSB8fCBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkNCiAjaWYgIWRlZmluZWQoSEFWRV9OU19ESVJF
Q1RfU1VQUE9SVCkNCkBAIC0xMDk3LDMgKzEwOTEsNyBAQA0KICNpZiBQTEFURk9STShNQUMpDQog
I2RlZmluZSBIQVZFX1NDRU5FS0lUIDENCiAjZW5kaWYNCisNCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApDQorI2RlZmluZSBI
QVZFX1VOSUZJRURfU1BFRUNIU1lOVEhFU0lTX0ZJWF9GT1JfODE0NjUxNjQgMQ0KKyNlbmRpZg0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZw0KaW5kZXggODUzN2ZmNzgxZTJlLi44ZThhYjdmYjI3ZGQgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0K
QEAgLTEsMyArMSwyOCBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNo
QGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxh
dGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3
OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
QVZTcGVlY2hTeW50aGVzaXplciBoYXMgYmVlbiBmdWxseSBzdXBwb3J0ZWQgb24gbWFjT1MgZm9y
IGEgbnVtYmVyIG9mIHllYXJzLiBUaGlzIGFsbG93cyB1cyB0byB1bmlmeSBwbGF0Zm9ybSB1c2Fn
ZS4NCisgICAgICAgIEZpeCBhIG51bWJlciBvZiB0ZXN0cyB0aGF0IGhhZCBiZWVuIG1hcmtlZCBm
YWlsaW5nL2ZsYWt5IHJlbGF0ZWQgdG8gc3BlZWNoIHN5bnRoZXNpcy4NCisNCisgICAgICAgICog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyk6DQorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoU3ludGhlc2lzOjpzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkpOg0KKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFN5bnRoZXNpczo6c3BlYWspOg0KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
Og0KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6DQorICAgICAg
ICAqIHBhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg6DQorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDoNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OnZhcmlhdGlv
bkF4ZXMpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cklPUy5tbTogUmVtb3ZlZC4NCisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNYWMubW06IFJlbW92ZWQuDQorICAgICAgICAqIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbTogQWRkZWQuDQor
DQogMjAyMS0xMS0yMyAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPg0KIA0K
ICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGV4cGxpY2l0IGluaXRpYWxpemVyX2xpc3QgdXNh
Z2UNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
LmNwcA0KaW5kZXggMTJjNjgzOWRkYmE0Li5lYWYzYTJlMWU3OTggMTAwNjQ0DQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwDQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwDQpAQCAtNTksOCAr
NTksMTAgQEAgU3BlZWNoU3ludGhlc2lzOjpTcGVlY2hTeW50aGVzaXMoV2Vha1B0cjxTcGVlY2hT
eW50aGVzaXNDbGllbnQ+IGNsaWVudCwgRG9jdW1lbnQNCiAgICAgVU5VU0VEX1BBUkFNKGRvY3Vt
ZW50KTsNCiAjZW5kaWYNCiANCi0gICAgaWYgKG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KQ0KKyAg
ICBpZiAobV9zcGVlY2hTeW50aGVzaXNDbGllbnQpIHsNCiAgICAgICAgIG1fc3BlZWNoU3ludGhl
c2lzQ2xpZW50LT5zZXRPYnNlcnZlcigqdGhpcyk7DQorICAgICAgICBtX3NwZWVjaFN5bnRoZXNp
c0NsaWVudC0+cmVzZXRTdGF0ZSgpOw0KKyAgICB9DQogfQ0KIA0KIHZvaWQgU3BlZWNoU3ludGhl
c2lzOjpzZXRQbGF0Zm9ybVN5bnRoZXNpemVyKHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyPiBzeW50aGVzaXplcikNCkBAIC0xMjIsMTIgKzEyNCw2IEBAIHZvaWQgU3Bl
ZWNoU3ludGhlc2lzOjpzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkoU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlJiB1dHRlcmFuDQogICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSA9ICZ1dHRlcmFu
Y2U7DQogICAgIG1faXNQYXVzZWQgPSBmYWxzZTsNCiANCi0gICAgLy8gWmVybyBsZW5ndGhlZCBz
dHJpbmdzIHNob3VsZCBpbW1lZGlhdGVseSBub3RpZnkgdGhhdCB0aGUgZXZlbnQgaXMgY29tcGxl
dGUuDQotICAgIGlmICh1dHRlcmFuY2UudGV4dCgpLmlzRW1wdHkoKSkgew0KLSAgICAgICAgaGFu
ZGxlU3BlYWtpbmdDb21wbGV0ZWQodXR0ZXJhbmNlLCBmYWxzZSk7DQotICAgICAgICByZXR1cm47
DQotICAgIH0NCi0NCiAgICAgaWYgKG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50KQ0KICAgICAgICAg
bV9zcGVlY2hTeW50aGVzaXNDbGllbnQtPnNwZWFrKHV0dGVyYW5jZS5wbGF0Zm9ybVV0dGVyYW5j
ZSgpKTsNCiAgICAgZWxzZQ0KQEAgLTE0NSw3ICsxNDEsNiBAQCB2b2lkIFNwZWVjaFN5bnRoZXNp
czo6c3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJiB1dHRlcmFuY2UpDQogI2VuZGlmDQog
DQogICAgIG1fdXR0ZXJhbmNlUXVldWUuYXBwZW5kKHV0dGVyYW5jZSk7DQotDQogICAgIC8vIElm
IHRoZSBxdWV1ZSB3YXMgZW1wdHksIHNwZWFrIHRoaXMgaW1tZWRpYXRlbHkgYW5kIGFkZCBpdCB0
byB0aGUgcXVldWUuDQogICAgIGlmIChtX3V0dGVyYW5jZVF1ZXVlLnNpemUoKSA9PSAxKQ0KICAg
ICAgICAgc3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KG1fdXR0ZXJhbmNlUXVldWUuZmlyc3QoKSk7
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9DaGFuZ2VMb2cNCmluZGV4IGU3MmRiZmQyNzEwZC4uNjU2MjU2ZWZkNGI4IDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZw0KQEAgLTEsMyArMSwxNyBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVl
Y2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLg0KKw0KKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoNCisgICAg
ICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6DQorICAgICAgICAqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToNCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9B
WFNwZWVjaE1hbmFnZXJTUEkuaDoNCisgICAgICAgICogcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhl
c2lzU1BJLmg6IFJlbW92ZWQuDQorDQogMjAyMS0xMS0yMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPg0KIA0KICAgICAgICAgW1dlYkdQVV0gVXNlIE9wdGlvblNldCB3
aGVyZSBpdCBtYWtlcyBzZW5zZSB0bw0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Q
QUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5kZXggYWU2OTk3NWZiYmI2Li5iYzM1ZDhjNjFiYjEg
MTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvag0KQEAgLTMyMyw3ICszMjMsNiBAQA0KIAkJQTEwODI2RjkxRjU3NjI5MjAwNDc3MkFDIC8q
IFdlYlBhbmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTA4MjZGNzFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCAqLzsgfTsNCiAJCUExMDgy
NkZBMUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgyNkY4MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQ
YW5lbC5tbSAqLzsgfTsNCiAJCUExMDgyNkZFMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNz
U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA4
MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovOyB9Ow0KLQkJQTExNzVC
NDkxRjZBRkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNDgxRjZBRkY4RTAwQzRCOUYw
IC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovOyB9Ow0KIAkJQTExNzVCNEIxRjZCMkQ3RTAwQzRC
OUYwIC8qIE5TQ2VsbFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovOyB9Ow0K
IAkJQTExNzVCNEUxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNEMxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5oICovOyB9Ow0KIAkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8qIFBv
cHVwTWVudS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMTc1QjREMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUubW0gKi87IH07DQpAQCAtNzI4
LDcgKzcyNyw2IEBADQogCQlBMTA4MjZGNzFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJ
CUExMDgyNkY4MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlBhbmVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTEwODI2
RkQxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNH
cmFwaGljc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KLQkJQTExNzVCNDgxRjZB
RkY4RTAwQzRCOUYwIC8qIFNwZWVjaFN5bnRoZXNpc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hTeW50aGVzaXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjRB
MUY2QjJEN0UwMEM0QjlGMCAvKiBOU0NlbGxTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNDZWxsU1BJ
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3NUI0QzFGNkIzMzczMDBDNEI5
RjAgLyogUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVu
dS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvcHVwTWVudS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsNCkBAIC05NzgsNyArOTc2LDYgQEANCiAJCQkJMEM3Nzg1ODQxRjQ1MTMwRjAw
RjRFQkI2IC8qIE5TV2luZG93U1BJLmggKi8sDQogCQkJCTBDNzc4NTg1MUY0NTEzMEYwMEY0RUJC
NiAvKiBQSVBTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODcxRjQ1MTMwRjAwRjRFQkI2IC8qIFF1aWNr
TG9va01hY1NQSS5oICovLA0KLQkJCQlBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNo
U3ludGhlc2lzU1BJLmggKi8sDQogCQkJCTcxQjExNDFGMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0
ZW1QcmV2aWV3U1BJLmggKi8sDQogCQkJCTBDNzc4NTg4MUY0NTEzMEYwMEY0RUJCNiAvKiBUZWxl
cGhvbnlVdGlsaXRpZXNTUEkuaCAqLywNCiAJCQkpOw0KQEAgLTE1NDksNyArMTU0Niw2IEBADQog
CQkJCUEzNzg4RTk4MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oIGluIEhlYWRlcnMgKi8sDQog
CQkJCTkzQjM4RUJFMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sDQogCQkJCTkzQjM4RUMyMjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVlY2hTUEkuaCBpbiBI
ZWFkZXJzICovLA0KLQkJCQlBMTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhl
c2lzU1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJMEM1QUY5MjExRjQzQTRDNzAwMkVBQzAyIC8q
IFNRTGl0ZTNTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQk3MUIxMTQyMDI2ODIzQUNEMDA0RDY3
MDEgLyogU3lzdGVtUHJldmlld1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTMxMzA4QjE0MjBB
MjE3MDUwMDNGQjkyOSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLywNCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgN
CmluZGV4IDlkYjlhZjhmN2VjMS4uYTczNzA5NzdiZGM4IDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oDQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgNCkBAIC03Niw2ICs3
Niw5IEBAIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTdHJlYW1TZXNzaW9uKQ0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBB
TCwgQVZBdWRpb1Nlc3Npb24pDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlBl
cnNpc3RhYmxlQ29udGVudEtleVJlcXVlc3QpDQorI2VuZGlmDQorDQorI2lmIFBMQVRGT1JNKENP
Q09BKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXNW
b2ljZSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoU3ludGhlc2l6
ZXIpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFV0dGVyYW5jZSkN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5tbQ0KaW5kZXggZDIxZDQ5Y2Q3NzAyLi5iZDZlYmJjYjk5MTMgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tDQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tDQpA
QCAtMTAyLDYgKzEwMiw5IEBAIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24sIFBBTF9FDQogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uLCBQQUxfRVhQT1JUKQ0KIFNPRlRfTElOS19D
TEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlBlcnNpc3Rh
YmxlQ29udGVudEtleVJlcXVlc3QsIFBBTF9FWFBPUlQpDQorI2VuZGlmDQorDQorI2lmIFBMQVRG
T1JNKENPQ09BKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlLCBQQUxfRVhQT1JUKQ0KIFNPRlRf
TElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNw
ZWVjaFN5bnRoZXNpemVyLCBQQUxfRVhQT1JUKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNwZWVjaFV0dGVyYW5jZSwgUEFMX0VY
UE9SVCkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BWFNw
ZWVjaE1hbmFnZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3Bl
ZWNoTWFuYWdlclNQSS5oDQppbmRleCBmZWNmMTBjZWEzYmYuLjA0NjhiYTkxYmE1MyAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQ
SS5oDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BWFNwZWVjaE1hbmFn
ZXJTUEkuaA0KQEAgLTI1LDcgKzI1LDcgQEANCiANCiAjcHJhZ21hIG9uY2UNCiANCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogDQogLy8gRklYTUU6IFVu
ZG8gd2hlbiBpc1N5c3RlbVZvaWNlIGlzIGF2YWlsYWJsZSBpbiBhbGwgU0RLcy4NCiAjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykgJiYgMA0KQEAgLTQyLDUgKzQyLDUgQEANCiANCiAjZW5kaWYg
Ly8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkNCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpDQogDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oDQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQNCmluZGV4IGI5Mjk3ODJiZWIwYy4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmgNCisrKyAvZGV2
L251bGwNCkBAIC0xLDQzICswLDAgQEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCi0gKg0KLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucw0KLSAqIGFyZSBtZXQ6DQotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCi0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQNCi0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCi0gKg0K
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycNCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywNCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSDQot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTDQotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUg0KLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GDQot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTDQotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4NCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQ0KLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YNCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
DQotICovDQotDQotI3ByYWdtYSBvbmNlDQotDQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
DQotDQotI2luY2x1ZGUgPEFwcGxpY2F0aW9uU2VydmljZXMvQXBwbGljYXRpb25TZXJ2aWNlc1By
aXYuaD4NCi0NCi0jZW5kaWYNCi0NCi1XVEZfRVhURVJOX0NfQkVHSU4NCi0NCi1DRkFycmF5UmVm
IENvcHlTcGVlY2hTeW50aGVzaXNWb2ljZXNGb3JNb2RlKENGVHlwZVJlZiBtb2RlKTsNCi0jaWYg
SEFWRShTUEVFQ0hTWU5USEVTSVNfTU9OVEVSRVlfU1BJKQ0KLUNGU3RyaW5nUmVmIENvcHlJZGVu
dGlmaWVyU3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKENGQXJyYXlSZWYg
dm9pY2VzLCBDRkxvY2FsZVJlZik7DQotI2Vsc2UNCi1DRlN0cmluZ1JlZiBHZXRJZGVudGlmaWVy
U3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKENGQXJyYXlSZWYgdm9pY2Vz
LCBDRkxvY2FsZVJlZik7DQotI2VuZGlmDQotDQotV1RGX0VYVEVSTl9DX0VORA0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0DQppbmRleCAxYTQ2Njg2Zjc4Y2QuLjNhYTJlNjIzZTBjNiAxMDA2NDQNCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQNCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQNCkBAIC0yNTksNiArMjU5LDcgQEAgcGxhdGZvcm0vY29jb2EvUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0NCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJk
Q29jb2EubW0NCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tDQog
cGxhdGZvcm0vY29jb2EvUGxhdGZvcm1QYXN0ZWJvYXJkQ29jb2EubW0NCitwbGF0Zm9ybS9jb2Nv
YS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0v
Y29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0NCiBwbGF0Zm9ybS9jb2Nv
YS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tDQogcGxhdGZvcm0vY29jb2EvUmVtb3RlQ29tbWFuZExp
c3RlbmVyQ29jb2EubW0NCkBAIC00NDEsNyArNDQyLDYgQEAgcGxhdGZvcm0vaW9zL1Bhc3RlYm9h
cmRJT1MubW0NCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gQG5vLXVu
aWZ5DQogcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lv
cy9QbGF0Zm9ybVNjcmVlbklPUy5tbQ0KLXBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVySU9TLm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdC5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUHJldmlld0NvbnZlcnRlcklP
Uy5tbQ0KIHBsYXRmb3JtL2lvcy9RdWlja0xvb2subW0NCkBAIC00ODgsNyArNDg4LDYgQEAgcGxh
dGZvcm0vbWFjL1Bhc3RlYm9hcmRXcml0ZXIubW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tDQog
cGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tDQotcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNYWMubW0NCiBwbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlTWFjLm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL21hYy9QbHVnaW5CbG9ja2xpc3QubW0N
CiBwbGF0Zm9ybS9tYWMvUG93ZXJPYnNlcnZlck1hYy5jcHANCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oNCmluZGV4IDI4NmM5MzQ5YjEyMi4u
MGM5MGI4ZmRjNTY5IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oNCkBAIC0zNzAzLDcgKzM3MDMsNyBAQA0KIAkJQTlEMjQ4MDEwRDc1
N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5RDI0N0ZEMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RP
TVBsdWdpbkFycmF5LmggKi87IH07DQogCQlBOUQyNDgwNzBENzU3RTdEMDBGREY5NTkgLyogSlNE
T01NaW1lVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTlEMjQ4MDMwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGUuaCAqLzsgfTsNCiAJ
CUE5RDI0ODA5MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE5RDI0ODA1MEQ3NTdFN0Qw
MEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlQXJyYXkuaCAqLzsgfTsNCi0JCUFBMTJERjQ5MTc0M0RG
ODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFFMzc1NUQxNzQyOUJDQzAwNjIw
MEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi87IH07DQorCQlBQTEyREY0
OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFFMzc1NUQxNzQy
OUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSAqLzsgfTsN
CiAJCUFBMjFFQ0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTA5NzhFRTBBQkFB
NkUxMDA4NzQ0ODAgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07DQogCQlBQTJBNUFDRTE2QTQ4NUZEMDA5NzVBMjUg
LyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBMkE1QUM3MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVz
aXNWb2ljZS5oICovOyB9Ow0KIAkJQUEyQTVBRDAxNkE0ODYwNDAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUEyQTVBQzUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZS5oICovOyB9Ow0KQEAgLTc1NzYsNyArNzU3Niw2IEBADQogCQkyOUQ3QkNGOTE0NDRBRjdE
MDA3MDYxOUMgLyogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsNCiAJCTI5RTA0QTI3QkVEMkY4MUY5OEU5MDIyQiAvKiBKU0JlZm9yZVVubG9h
ZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmVmb3JlVW5sb2Fk
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTI5RTREOERGMTZCMDk0MEYw
MEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCi0J
CTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTI5RkFG
NEI1MTk1QUIwODkwMEE1MjJEQyAvKiBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VW5kb0luc2VydGlvbk1hcmt1cE1hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMkE0MTA3QTAyNkNCNjZFRDAwM0JGNzk3
IC8qIENTU0tleXdvcmRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NLZXl3b3JkVmFs
dWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMkE0MTA3QTIyNkNCNjZFRDAw
M0JGNzk3IC8qIENTU0tleXdvcmRWYWx1ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTS2V5d29yZFZhbHVlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCkBAIC0xMzkzNyw3ICsxMzkzNiw3IEBADQogCQlB
QURFRkU0MzI1QUY0RkNCMDA0MERENjcgLyogRm9jdXNPcHRpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvY3VzT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzQx
NkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFBRTI3Qjc1MTZDQkZD
MEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KLQkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8q
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9Ow0KKwkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFBRjVCN0IxMTUyNEI0QkQwMDA0Q0I0OSAvKiBXZWJTb2Nr
ZXRGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTb2Nr
ZXRGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQjIzQTMyNTA5QkJB
N0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI2MDlCQkE3RDAwMDY3Q0M1MyAvKiBC
ZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsN
CkBAIC0yMzAwOCw3ICsyMzAwNyw2IEBADQogCQkJCUJDQUE0ODZEMTRBMDUyNTMwMDg4RkFDNCAv
KiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSAqLywNCiAJCQkJQzVGNzY1QkExNEUxRUNGNDAw
NkM4OTlCIC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSAqLywNCiAJCQkJQkM5NEQxMDcwQzI3
NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tICovLA0KLQkJCQkyOUU0RDhFMDE2
QjA5NTk4MDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbSAqLywNCiAJ
CQkJQ0RBMjlBMTUxQ0JEQTU2QzAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
Yy5oICovLA0KIAkJCQlDREEyOUExNDFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjLm1tICovLA0KIAkJCQkxQUZGQzQ0RjFENUU3RUM3MDAyNjdBNjYgLyogUGx1
Z2luQmxvY2tsaXN0LmggKi8sDQpAQCAtMjU3MDUsNyArMjU3MDMsNiBAQA0KIAkJCQkyNjYwMUVC
RTE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gKi8sDQogCQkJ
CUM1Mjc4QjBCMTdGMjEyRUEwMDNBMjk5OCAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gKi8s
DQogCQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVDOCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAq
LywNCi0JCQkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJJT1MubW0gKi8sDQogCQkJCUNEQTI5QTJFMUNCRjczRkMwMDkwMUNDRiAvKiBQbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oICovLA0KIAkJCQlDREEyOUEyRjFDQkY3M0ZDMDA5MDFD
Q0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0gKi8sDQogCQkJCUExQzE1MDc3
MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVySU9TLm1tICovLA0KQEAgLTI1ODY0
LDYgKzI1ODYxLDcgQEANCiAJCQkJOUJFRDJDQUYxRjdDQzA2MjAwNjY2MDE4IC8qIFBhc3RlYm9h
cmRDb2NvYS5tbSAqLywNCiAJCQkJRjRGQjM1MDAyMzUwQzk2MjAwRjAwOTRBIC8qIFBhc3RlYm9h
cmRDdXN0b21EYXRhQ29jb2EubW0gKi8sDQogCQkJCUY0NjI4QTlFMjM0RDNCQkYwMEJDODg0QyAv
KiBQbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbSAqLywNCisJCQkJQUFFMzc1NUQxNzQyOUJDQzAw
NjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSAqLywNCiAJCQkJNTJC
MEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICovLA0KIAkJCQk5NUJBNEZB
QjI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oICovLA0KIAkJCQlD
REEyOUEwQTFDQkQ5QTc0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWwuaCAqLywNCkBA
IC0zNzU4Nyw3ICszNzU4NSw3IEBADQogCQkJCTFBNTY5RDFBMEQ3RTJCODIwMDdDMzk4MyAvKiBv
YmpjX3V0aWxpdHkubW0gaW4gU291cmNlcyAqLywNCiAJCQkJRTE2OTgyNjAxMTM0NjM2QTAwODk0
MTE1IC8qIE9iakNSdW50aW1lT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sDQogCQkJCUNFQTI4NDY2
MjE0MUU4NDkwMEU0MDdFOCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBpbiBTb3VyY2Vz
ICovLA0KLQkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFGREYgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcklPUy5tbSBpbiBTb3VyY2VzICovLA0KKwkJCQlBQTEyREY0OTE3NDNERjgzMDA0REFG
REYgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tIGluIFNvdXJjZXMgKi8sDQog
CQkJCUNEQTI5QTMwMUNCRjc0RDQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VB
VktpdC5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlDREEyOUExNjFDQkRBNTZDMDA5MDFDQ0YgLyog
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGluIFNvdXJjZXMgKi8sDQogCQkJCTQxOTI0
MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5t
bSBpbiBTb3VyY2VzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oDQppbmRleCBmOGJlNDYyYTJlMWYuLjQwMzI5YWQwNGFlMiAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCkBAIC00Nyw2ICs0Nyw3IEBAIHB1
YmxpYzoNCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsNCiAgICAgdmlydHVhbCB2b2lk
IHBhdXNlKCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgPSAwOw0KKyAgICB2aXJ0
dWFsIHZvaWQgcmVzZXRTdGF0ZSgpID0gMDsNCiANCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaA0KaW5kZXggYjRiOGQw
OGEwY2MzLi4yM2EwZjI5MTI5ZjEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaA0KQEAgLTcyLDggKzcyLDggQEAgcHVibGlj
Og0KICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKTsNCiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgp
Ow0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCk7DQorICAgIHZpcnR1YWwgdm9pZCByZXNldFN0
YXRlKCk7DQogDQotICAgIHZvaWQgcmVzZXRTdGF0ZSgpOw0KICAgICBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRoZXNp
emVyQ2xpZW50OyB9DQogDQogcHJvdGVjdGVkOg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tDQpz
aW1pbGFyaXR5IGluZGV4IDg4JQ0KcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCnJlbmFtZSB0byBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0NCmlu
ZGV4IDU4NTgyNDQ2YmI0Ni4uYzJiYTUzMjliMDA0IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0NCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2Nv
YS5tbQ0KQEAgLTI1LDExICsyNSwxNyBAQA0KICNpbXBvcnQgImNvbmZpZy5oIg0KICNpbXBvcnQg
IlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCiANCi0jaWYgRU5BQkxFKFNQRUVDSF9TWU5U
SEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKSAmJiBQTEFURk9STShDT0NPQSkNCiANCiAjaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZS5oIg0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2Uu
aCINCi0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisNCisjaWYg
X19oYXNfaW5jbHVkZSg8QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4pDQorI2ltcG9ydCA8
QVZGQXVkaW8vQVZTcGVlY2hTeW50aGVzaXMuaD4NCisjZWxzZQ0KKyNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVkZvdW5kYXRpb24uaD4NCisjZW5kaWYNCisNCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L0FYU3BlZWNoTWFuYWdlclNQSS5oPg0KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25z
Lmg+DQogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPg0KQEAgLTYzLDggKzY5LDcgQEAgc3RhdGlj
IGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICNkZWZpbmUg
QVZTcGVlY2hVdHRlcmFuY2VEZWZhdWx0U3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5jZURl
ZmF1bHRTcGVlY2hSYXRlKCkNCiAjZGVmaW5lIEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVj
aFJhdGUgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogDQotQGludGVy
ZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8QVZTcGVlY2hTeW50aGVz
aXplckRlbGVnYXRlPg0KLXsNCitAaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIg
OiBOU09iamVjdDxBVlNwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+IHsNCiAgICAgV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCiAgICAgLy8g
SG9sZCBhIFJlZiB0byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFyIHVu
dGlsIHRoZSBzeW50aCBpcyBkb25lIHdpdGggaXQuDQogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gbV91dHRlcmFuY2U7DQpAQCAtMTA1LDE2ICsx
MTAsMTUgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJh
dGUoKQ0KICAgICAvLyBXaGVuIHNwZWFrIGlzIGNhbGxlZCB3ZSBzaG91bGQgbm90IGhhdmUgYW4g
ZXhpc3Rpbmcgc3BlZWNoIHV0dGVyYW5jZSBvdXRzdGFuZGluZy4NCiAgICAgQVNTRVJUKCFtX3V0
dGVyYW5jZSk7DQogICAgIEFTU0VSVCh1dHRlcmFuY2UpOw0KLQ0KICAgICBpZiAoIXV0dGVyYW5j
ZSkNCiAgICAgICAgIHJldHVybjsNCi0NCisgICAgDQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUw0KICAgICBpZiAoIW1fc3ludGhlc2l6ZXIpIHsNCiAgICAgICAgIG1fc3ludGhlc2l6
ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZTcGVlY2hTeW50aGVzaXplckluc3RhbmNlKCkgaW5p
dF0pOw0KICAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0RGVsZWdhdGU6c2VsZl07DQogICAgIH0N
Ci0NCisgICAgDQogICAgIC8vIENob29zZSB0aGUgYmVzdCB2b2ljZSwgYnkgZmlyc3QgbG9va2lu
ZyBhdCB0aGUgdXR0ZXJhbmNlIHZvaWNlLCB0aGVuIHRoZSB1dHRlcmFuY2UgbGFuZ3VhZ2UsDQog
ICAgIC8vIHRoZW4gY2hvb3NlIHRoZSBkZWZhdWx0IGxhbmd1YWdlLg0KICAgICBXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlKiB1dHRlcmFuY2VWb2ljZSA9IHV0dGVyYW5jZS0+
dm9pY2UoKTsNCkBAIC0xMzksNiArMTQzLDEyIEBAIHN0YXRpYyBmbG9hdCBnZXRBVlNwZWVjaFV0
dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiAgICAgW2F2VXR0ZXJhbmNlIHNldFZvaWNlOmF2
Vm9pY2VdOw0KICAgICBtX3V0dGVyYW5jZSA9IFdURk1vdmUodXR0ZXJhbmNlKTsNCiANCisgICAg
Ly8gbWFjT1Mgd29uJ3Qgc2VuZCBhIGRpZCBzdGFydCBzcGVha2luZyBjYWxsYmFjayBmb3IgZW1w
dHkgc3RyaW5ncy4NCisjaWYgIUhBVkUoVU5JRklFRF9TUEVFQ0hTWU5USEVTSVNfRklYX0ZPUl84
MTQ2NTE2NCkNCisgICAgaWYgKCFtX3V0dGVyYW5jZS0+dGV4dCgpLmxlbmd0aCgpKQ0KKyAgICAg
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcoKm1fdXR0
ZXJhbmNlKTsNCisjZW5kaWYNCisNCiAgICAgW21fc3ludGhlc2l6ZXIgc3BlYWtVdHRlcmFuY2U6
YXZVdHRlcmFuY2VdOw0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TDQogfQ0KQEAgLTE2
Myw2ICsxNzMsMTMgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNw
ZWVjaFJhdGUoKQ0KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TDQogfQ0KIA0KKy0gKHZv
aWQpcmVzZXRTdGF0ZQ0KK3sNCisgICAgLy8gT24gYSByZXNldCwgY2FuY2VsIHV0dGVyYW5jZSBh
bmQgc2V0IHRvIG5pbCBpbW1lZGlhdGVseSBzbyB0aGUgbmV4dCBzcGVlY2ggam9iIGNvbnRpbnVl
cyB3aXRob3V0IHdhaXRpbmcgZm9yIGEgY2FsbGJhY2sNCisgICAgW3NlbGYgY2FuY2VsXTsNCisg
ICAgbV91dHRlcmFuY2UgPSBuaWw7DQorfQ0KKw0KIC0gKHZvaWQpY2FuY2VsDQogew0KICAgICBp
ZiAoIW1fdXR0ZXJhbmNlKQ0KQEAgLTE5MSwxMCArMjA4LDEwIEBAIHN0YXRpYyBmbG9hdCBnZXRB
VlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiAgICAgICAgIHJldHVybjsNCiAN
CiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNw
ZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRlbHkuDQotICAgIFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcGxhdGZvcm1V
dHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsNCisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwcm90ZWN0ZWRVdHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsN
CiAgICAgbV91dHRlcmFuY2UgPSBudWxscHRyOw0KIA0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0
LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnBsYXRmb3JtVXR0ZXJhbmNlKTsNCisgICAg
bV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCpwcm90ZWN0
ZWRVdHRlcmFuY2UpOw0KIH0NCiANCiAtICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihBVlNwZWVj
aFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXIgZGlkUGF1c2VTcGVlY2hVdHRlcmFuY2U6KEFWU3Bl
ZWNoVXR0ZXJhbmNlICopdXR0ZXJhbmNlDQpAQCAtMjI1LDEwICsyNDIsMTAgQEAgc3RhdGljIGZs
b2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAgICAgICAgcmV0
dXJuOw0KIA0KICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBm
aW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4N
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBw
bGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3RlY3RlZFV0dGVyYW5jZSA9IG1fdXR0
ZXJhbmNlOw0KICAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7DQogDQotICAgIG1fc3ludGhlc2l6
ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqcGxhdGZvcm1VdHRlcmFuY2Up
Ow0KKyAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmco
KnByb3RlY3RlZFV0dGVyYW5jZSk7DQogfQ0KIA0KIC0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6
KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciB3aWxsU3BlYWtSYW5nZU9mU3BlZWNo
U3RyaW5nOihOU1JhbmdlKWNoYXJhY3RlclJhbmdlIHV0dGVyYW5jZTooQVZTcGVlY2hVdHRlcmFu
Y2UgKil1dHRlcmFuY2UNCkBAIC0yMzksNyArMjU2LDcgQEAgc3RhdGljIGZsb2F0IGdldEFWU3Bl
ZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0K
ICAgICAgICAgcmV0dXJuOw0KIA0KLSAgICAvLyBpT1Mgb25seSBzdXBwb3J0cyB3b3JkIGJvdW5k
YXJpZXMuDQorICAgIC8vIEFWU3BlZWNoU3ludGhlc2l6ZXIgb25seSBzdXBwb3J0cyB3b3JkIGJv
dW5kYXJpZXMuDQogICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5ib3VuZGFyeUV2
ZW50T2NjdXJyZWQoKm1fdXR0ZXJhbmNlLCBXZWJDb3JlOjpTcGVlY2hCb3VuZGFyeTo6U3BlZWNo
V29yZEJvdW5kYXJ5LCBjaGFyYWN0ZXJSYW5nZS5sb2NhdGlvbik7DQogfQ0KIA0KQEAgLTI3NSw3
ICsyOTIsOSBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVWb2lj
ZUxpc3QoKQ0KICAgICAgICAgICAgIGluY2x1ZGVWb2ljZSA9IHZvaWNlLnF1YWxpdHkgPT0gQVZT
cGVlY2hTeW50aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0Ow0KICAgICAgICAgaWYgKGluY2x1ZGVW
b2ljZSkNCiAjZWxzZQ0KLSAgICAgICAgaWYgKHZvaWNlLnF1YWxpdHkgPT0gQVZTcGVlY2hTeW50
aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0KQ0KKyAgICAgICAgLy8gQVZTcGVlY2hTeW50aGVzaXMg
b24gbWFjT1MgZG9lcyBub3Qgc3VwcG9ydCBxdWFsaXR5IHByb3BlcnR5IGNvcnJlY3RseS4NCisg
ICAgICAgIGlmICh2b2ljZS5xdWFsaXR5ID09IEFWU3BlZWNoU3ludGhlc2lzVm9pY2VRdWFsaXR5
RGVmYXVsdA0KKyAgICAgICAgICAgIHx8IChUQVJHRVRfT1NfT1NYICYmICFbdm9pY2VVUkkgaGFz
U3VmZml4OkAicHJlbWl1bSJdKSkNCiAjZW5kaWYNCiAgICAgICAgICAgICBtX3ZvaWNlTGlzdC5h
cHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRlKHZvaWNlVVJJLCBuYW1l
LCBsYW5ndWFnZSwgdHJ1ZSwgaXNEZWZhdWx0KSk7DQogICAgIH0NCkBAIC0zMDcsOSArMzI2LDkg
QEAgdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjYW5jZWwoKQ0KIA0KIHZvaWQgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cmVzZXRTdGF0ZSgpDQogew0KLSAgICBbbV9wbGF0Zm9y
bVNwZWVjaFdyYXBwZXIgY2FuY2VsXTsNCisgICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHJl
c2V0U3RhdGVdOw0KIH0NCiANCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQogDQotI2VuZGlmIC8v
IEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNlbmRp
ZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oQ09DT0EpDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1hYy5tbQ0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCBmYTc0NjVmZjc1
OWIuLjAwMDAwMDAwMDAwMA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0NCisrKyAvZGV2L251bGwNCkBAIC0xLDI4OSArMCww
IEBADQotLyoNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotICogYXJl
IG1ldDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSAqDQotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZDQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUN
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUg0KLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLA0KLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywNCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1INCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZDQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFDQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCi0gKi8NCi0NCi0jaW1wb3J0ICJjb25maWcuaCINCi0jaW1wb3J0ICJQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgiDQotDQotI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKSAmJiBQTEFURk9STShNQUMpDQotDQotI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UuaCINCi0jaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmgi
DQotI2ltcG9ydCA8QXBwS2l0L05TU3BlZWNoU3ludGhlc2l6ZXIuaD4NCi0jaW1wb3J0IDxwYWwv
c3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaD4NCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
DQotDQotQGludGVyZmFjZSBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyIDogTlNPYmplY3Q8TlNT
cGVlY2hTeW50aGVzaXplckRlbGVnYXRlPg0KLXsNCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplciogbV9zeW50aGVzaXplck9iamVjdDsNCi0gICAgLy8gSG9sZCBhIFJlZiB0
byB0aGUgdXR0ZXJhbmNlIHNvIHRoYXQgaXQgd29uJ3QgZGlzYXBwZWFyIHVudGlsIHRoZSBzeW50
aCBpcyBkb25lIHdpdGggaXQuDQotICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlKiBtX3V0dGVyYW5jZTsNCi0NCi0gICAgUmV0YWluUHRyPE5TU3BlZWNoU3ludGhl
c2l6ZXI+IG1fc3ludGhlc2l6ZXI7DQotICAgIGZsb2F0IG1fYmFzZVBpdGNoOw0KLX0NCi0NCi0t
IChXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyICopaW5pdFdpdGhTcGVlY2hTeW50aGVzaXplcjoo
V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVyOw0KLS0gKHZv
aWQpc3BlYWtVdHRlcmFuY2U6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlICopdXR0ZXJhbmNlOw0KLQ0KLUBlbmQNCi0NCi1AaW1wbGVtZW50YXRpb24gV2ViU3BlZWNo
U3ludGhlc2lzV3JhcHBlcg0KLQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0
V2l0aFNwZWVjaFN5bnRoZXNpemVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
ICopc3ludGhlc2l6ZXINCi17DQotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQ0KLSAg
ICAgICAgcmV0dXJuIG5pbDsNCi0NCi0gICAgbV9zeW50aGVzaXplck9iamVjdCA9IHN5bnRoZXNp
emVyOw0KLSAgICBbc2VsZiB1cGRhdGVCYXNlUGl0Y2hGb3JTeW50aGVzaXplcl07DQotICAgIHJl
dHVybiBzZWxmOw0KLX0NCi0NCi0vLyBOU1NwZWVjaFN5bnRoZXNpemVyIGV4cGVjdHMgYSBXb3Jk
cyBwZXIgTWludXRlIChXUE0pIHJhdGUuIFRoZXJlIGlzIG5vIHByZXNldCBkZWZhdWx0DQotLy8g
YnV0IHRoZXkgcmVjb21tZW5kIHRoYXQgbm9ybWFsIHNwZWFraW5nIGlzIDE4MC0yMjAgV1BNDQot
LSAoZmxvYXQpY29udmVydFJhdGVUb1dQTTooZmxvYXQpcmF0ZQ0KLXsNCi0gICAgLy8gV2UnbGwg
c2F5IDIwMCBXUE0gaXMgdGhlIGRlZmF1bHQgMXggdmFsdWUuDQotICAgIHJldHVybiAyMDAuMGYg
KiByYXRlOw0KLX0NCi0NCi0tIChmbG9hdCljb252ZXJ0UGl0Y2hUb05TU3BlZWNoVmFsdWU6KGZs
b2F0KXBpdGNoDQotew0KLSAgICAvLyBUaGlzIGFsbG93cyB0aGUgYmFzZSBwaXRjaCB0byByYW5n
ZSBmcm9tIDAlIC0gMjAwJSBvZiB0aGUgbm9ybWFsIHBpdGNoLg0KLSAgICByZXR1cm4gbV9iYXNl
UGl0Y2ggKiBwaXRjaDsNCi19DQotDQotLSAodm9pZCl1cGRhdGVCYXNlUGl0Y2hGb3JTeW50aGVz
aXplcg0KLXsNCi0gICAgLy8gUmVzZXQgdGhlIGJhc2UgcGl0Y2ggd2hlbmV2ZXIgd2UgY2hhbmdl
IHZvaWNlcywgc2luY2UgdGhlIGJhc2UgcGl0Y2ggaXMgZGlmZmVyZW50IGZvciBlYWNoIHZvaWNl
Lg0KLSAgICBbbV9zeW50aGVzaXplciBzZXRPYmplY3Q6bmlsIGZvclByb3BlcnR5Ok5TU3BlZWNo
UmVzZXRQcm9wZXJ0eSBlcnJvcjpuaWxdOw0KLSAgICBtX2Jhc2VQaXRjaCA9IFtbbV9zeW50aGVz
aXplciBvYmplY3RGb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IGVycm9yOm5p
bF0gZmxvYXRWYWx1ZV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlYWtVdHRlcmFuY2U6KFdlYkNvcmU6
OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlICopdXR0ZXJhbmNlDQotew0KLSAgICAv
LyBXaGVuIHNwZWFrIGlzIGNhbGxlZCB3ZSBzaG91bGQgbm90IGhhdmUgYW4gZXhpc3Rpbmcgc3Bl
ZWNoIHV0dGVyYW5jZSBvdXRzdGFuZGluZy4NCi0gICAgQVNTRVJUKCFtX3V0dGVyYW5jZSk7DQot
ICAgIEFTU0VSVCh1dHRlcmFuY2UpOw0KLQ0KLSAgICBpZiAoIW1fc3ludGhlc2l6ZXIpIHsNCi0g
ICAgICAgIG1fc3ludGhlc2l6ZXIgPSBhZG9wdE5TKFtbTlNTcGVlY2hTeW50aGVzaXplciBhbGxv
Y10gaW5pdFdpdGhWb2ljZTpuaWxdKTsNCi0gICAgICAgIFttX3N5bnRoZXNpemVyIHNldERlbGVn
YXRlOnNlbGZdOw0KLSAgICB9DQotDQotICAgIC8vIEZpbmQgaWYgd2Ugc2hvdWxkIHVzZSBhIHNw
ZWNpZmljIHZvaWNlIGJhc2VkIG9uIHRoZSB2b2ljZVVSSSBpbiB1dHRlcmFuY2UuDQotICAgIC8v
IE90aGVyd2lzZSwgZmluZCB0aGUgdm9pY2UgdGhhdCBtYXRjaGVzIHRoZSBsYW5ndWFnZS4gVGhl
IE1hYyBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZvaWNlIHBlciBsYW5ndWFnZSwgc28gdGhlIGZp
cnN0DQotICAgIC8vIG9uZSB3aWxsIGhhdmUgdG8gZG8uDQotDQotICAgIFdlYkNvcmU6OlBsYXRm
b3JtU3BlZWNoU3ludGhlc2lzVm9pY2UqIHV0dGVyYW5jZVZvaWNlID0gdXR0ZXJhbmNlLT52b2lj
ZSgpOw0KLSAgICAvLyBJZiBubyB2b2ljZSB3YXMgc3BlY2lmaWVkLCB0cnkgdG8gbWF0Y2ggYnkg
bGFuZ3VhZ2UuDQotICAgIGlmICghdXR0ZXJhbmNlVm9pY2UgJiYgIXV0dGVyYW5jZS0+bGFuZygp
LmlzRW1wdHkoKSkgew0KLSAgICAgICAgZm9yIChhdXRvJiB2b2ljZSA6IG1fc3ludGhlc2l6ZXJP
YmplY3QtPnZvaWNlTGlzdCgpKSB7DQotICAgICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UodXR0ZXJhbmNlLT5sYW5nKCksIHZvaWNlLT5sYW5nKCkpKSB7DQotICAgICAgICAgICAg
ICAgIHV0dGVyYW5jZVZvaWNlID0gdm9pY2UuZ2V0KCk7DQotICAgICAgICAgICAgICAgIGlmICh2
b2ljZS0+aXNEZWZhdWx0KCkpDQotICAgICAgICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAg
ICAgICB9DQotICAgICAgICB9DQotICAgIH0NCi0NCi0gICAgTlNTdHJpbmcgKnZvaWNlVVJJID0g
bmlsOw0KLSAgICBpZiAodXR0ZXJhbmNlVm9pY2UpDQotICAgICAgICB2b2ljZVVSSSA9IHV0dGVy
YW5jZVZvaWNlLT52b2ljZVVSSSgpOw0KLSAgICBlbHNlDQotICAgICAgICB2b2ljZVVSSSA9IFtO
U1NwZWVjaFN5bnRoZXNpemVyIGRlZmF1bHRWb2ljZV07DQotDQotICAgIC8vIERvbid0IHNldCB0
aGUgdm9pY2UgdW5sZXNzIG5lY2Vzc2FyeS4gVGhlcmUncyBhIGJ1ZyBpbiBOU1NwZWVjaFN5bnRo
ZXNpemVyIHN1Y2ggdGhhdA0KLSAgICAvLyBzZXR0aW5nIHRoZSB2b2ljZSBmb3IgdGhlIGZpcnN0
IHRpbWUgd2lsbCBjYXVzZSB0aGUgZmlyc3Qgc3BlZWNoRG9uZSBjYWxsYmFjayB0byByZXBvcnQg
aXQgd2FzIHVuc3VjY2Vzc2Z1bC4NCi0gICAgQk9PTCB1cGRhdGVQaXRjaCA9IE5POw0KLSAgICBp
ZiAoIVtbbV9zeW50aGVzaXplciB2b2ljZV0gaXNFcXVhbFRvU3RyaW5nOnZvaWNlVVJJXSkgew0K
LSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0Vm9pY2U6dm9pY2VVUkldOw0KLSAgICAgICAgLy8g
UmVzZXQgdGhlIGJhc2UgcGl0Y2ggd2hlbmV2ZXIgd2UgY2hhbmdlIHZvaWNlcy4NCi0gICAgICAg
IHVwZGF0ZVBpdGNoID0gWUVTOw0KLSAgICB9DQotDQotICAgIGlmIChtX2Jhc2VQaXRjaCA9PSAw
IHx8IHVwZGF0ZVBpdGNoKQ0KLSAgICAgICAgW3NlbGYgdXBkYXRlQmFzZVBpdGNoRm9yU3ludGhl
c2l6ZXJdOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJl
cldpdGhGbG9hdDpbc2VsZiBjb252ZXJ0UGl0Y2hUb05TU3BlZWNoVmFsdWU6dXR0ZXJhbmNlLT5w
aXRjaCgpXV0gZm9yUHJvcGVydHk6TlNTcGVlY2hQaXRjaEJhc2VQcm9wZXJ0eSBlcnJvcjpuaWxd
Ow0KLSAgICBbbV9zeW50aGVzaXplciBzZXRSYXRlOltzZWxmIGNvbnZlcnRSYXRlVG9XUE06dXR0
ZXJhbmNlLT5yYXRlKCldXTsNCi0gICAgW21fc3ludGhlc2l6ZXIgc2V0Vm9sdW1lOnV0dGVyYW5j
ZS0+dm9sdW1lKCldOw0KLQ0KLSAgICBtX3V0dGVyYW5jZSA9IHV0dGVyYW5jZTsNCi0gICAgW21f
c3ludGhlc2l6ZXIgc3RhcnRTcGVha2luZ1N0cmluZzp1dHRlcmFuY2UtPnRleHQoKV07DQotICAg
IG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRTdGFydFNwZWFraW5nKCptX3V0dGVy
YW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpcGF1c2UNCi17DQotICAgIGlmICghbV91dHRlcmFuY2Up
DQotICAgICAgICByZXR1cm47DQotDQotICAgIFttX3N5bnRoZXNpemVyIHBhdXNlU3BlYWtpbmdB
dEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAgICBtX3N5bnRoZXNpemVy
T2JqZWN0LT5jbGllbnQoKS0+ZGlkUGF1c2VTcGVha2luZygqbV91dHRlcmFuY2UpOw0KLX0NCi0N
Ci0tICh2b2lkKXJlc3VtZQ0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJl
dHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgY29udGludWVTcGVha2luZ107DQotICAgIG1f
c3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRSZXN1bWVTcGVha2luZygqbV91dHRlcmFu
Y2UpOw0KLX0NCi0NCi0tICh2b2lkKWNhbmNlbA0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkN
Ci0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgc3RvcFNwZWFraW5nQXRC
b3VuZGFyeTpOU1NwZWVjaEltbWVkaWF0ZUJvdW5kYXJ5XTsNCi0gICAgbV9zeW50aGVzaXplck9i
amVjdC0+Y2xpZW50KCktPnNwZWFraW5nRXJyb3JPY2N1cnJlZCgqbV91dHRlcmFuY2UpOw0KLSAg
ICBtX3V0dGVyYW5jZSA9IDA7DQotfQ0KLQ0KLS0gKHZvaWQpaW52YWxpZGF0ZQ0KLXsNCi0gICAg
bV91dHRlcmFuY2UgPSAwOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXREZWxlZ2F0ZTpuaWxdOw0K
LSAgICBbbV9zeW50aGVzaXplciBzdG9wU3BlYWtpbmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRp
YXRlQm91bmRhcnldOw0KLX0NCi0NCi0tICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihOU1NwZWVj
aFN5bnRoZXNpemVyICopc2VuZGVyIGRpZEZpbmlzaFNwZWFraW5nOihCT09MKWZpbmlzaGVkU3Bl
YWtpbmcNCi17DQotICAgIGlmICghbV91dHRlcmFuY2UpDQotICAgICAgICByZXR1cm47DQotDQot
ICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOw0KLQ0KLSAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFu
Y2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFr
aW5nIGpvYiBpbW1lZGlhdGVseS4NCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVz
aXNVdHRlcmFuY2UqIHV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KLSAgICBtX3V0dGVyYW5jZSA9
IDA7DQotDQotICAgIGlmIChmaW5pc2hlZFNwZWFraW5nKQ0KLSAgICAgICAgbV9zeW50aGVzaXpl
ck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCp1dHRlcmFuY2UpOw0KLSAgICBl
bHNlDQotICAgICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJv
ck9jY3VycmVkKCp1dHRlcmFuY2UpOw0KLX0NCi0NCi0tICh2b2lkKXNwZWVjaFN5bnRoZXNpemVy
OihOU1NwZWVjaFN5bnRoZXNpemVyICopc2VuZGVyIHdpbGxTcGVha1dvcmQ6KE5TUmFuZ2UpY2hh
cmFjdGVyUmFuZ2Ugb2ZTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nDQotew0KLSAgICBVTlVTRURf
UEFSQU0oc2VuZGVyKTsNCi0gICAgVU5VU0VEX1BBUkFNKHN0cmluZyk7DQotDQotICAgIGlmICgh
bV91dHRlcmFuY2UpDQotICAgICAgICByZXR1cm47DQotDQotICAgIC8vIE1hYyBwbGF0Zm9ybSBv
bmx5IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+
Y2xpZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdlYkNvcmU6OlNw
ZWVjaEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdlLmxvY2F0aW9u
KTsNCi19DQotDQotQGVuZA0KLQ0KLW5hbWVzcGFjZSBXZWJDb3JlIHsNCi0NCi1QbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJDbGllbnQqIGNsaWVudCkNCi0gICAgOiBtX3NwZWVjaFN5bnRoZXNpemVyQ2xp
ZW50KGNsaWVudCkNCi17DQotfQ0KLQ0KLVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6On5QbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBl
ciBpbnZhbGlkYXRlXTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRkFycmF5UmVmPiBzcGVl
Y2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCkNCi17DQotICAgIC8vIEdldCBhbGwgdGhl
IHZvaWNlcyBvZmZlcmVkIGJ5IFRUUy4NCi0gICAgLy8gQnkgZGVmYXVsdCBzcGVlY2ggb25seSBy
ZXR1cm5zICJwcmVtaXVtIiB2b2ljZXMsIHdoaWNoIGRvZXMgbm90IGluY2x1ZGUgYWxsIHRoZQ0K
LSAgICAvLyBpbnRlcm5hdGlvbmFsIHZvaWNlcy4gVGhpcyBhbGxvd3MgdXMgdG8gb2ZmZXIgc3Bl
ZWNoIHN5bnRoZXNpcyBmb3IgYWxsIHN1cHBvcnRlZCBsYW5ndWFnZXMuDQotICAgIHJldHVybiBh
ZG9wdENGKENvcHlTcGVlY2hTeW50aGVzaXNWb2ljZXNGb3JNb2RlKChfX2JyaWRnZSBDRkFycmF5
UmVmKUBbIEAiVm9pY2VHcm91cERlZmF1bHQiLCBAIlZvaWNlR3JvdXBDb21wYWN0IiBdKSk7DQot
fQ0KLQ0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNwZWVjaFN5bnRoZXNpc0dldERl
ZmF1bHRWb2ljZUlkZW50aWZpZXJGb3JMb2NhbGUoTlNMb2NhbGUgKnVzZXJMb2NhbGUpDQotew0K
LSAgICBpZiAoIXVzZXJMb2NhbGUpDQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSNpZiBIQVZF
KFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotICAgIHJldHVybiBhZG9wdENGKENvcHlJ
ZGVudGlmaWVyU3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5
bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVm
KXVzZXJMb2NhbGUpKTsNCi0jZWxzZQ0KLSAgICByZXR1cm4gR2V0SWRlbnRpZmllclN0cmluZ0Zv
clByZWZlcnJlZFZvaWNlSW5MaXN0V2l0aExvY2FsZShzcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlk
ZW50aWZpZXJzKCkuZ2V0KCksIChfX2JyaWRnZSBDRkxvY2FsZVJlZil1c2VyTG9jYWxlKTsNCi0j
ZW5kaWYNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjppbml0aWFsaXpl
Vm9pY2VMaXN0KCkNCi17DQotICAgIGF1dG8gYXZhaWxhYmxlVm9pY2VzID0gc3BlZWNoU3ludGhl
c2lzR2V0Vm9pY2VJZGVudGlmaWVycygpOw0KLSAgICBOU1VJbnRlZ2VyIGNvdW50ID0gWyhfX2Jy
aWRnZSBOU0FycmF5ICopYXZhaWxhYmxlVm9pY2VzLmdldCgpIGNvdW50XTsNCi0gICAgZm9yIChO
U1VJbnRlZ2VyIGsgPSAwOyBrIDwgY291bnQ7IGsrKykgew0KLSAgICAgICAgTlNTdHJpbmcgKnZv
aWNlTmFtZSA9IFsoX19icmlkZ2UgTlNBcnJheSAqKWF2YWlsYWJsZVZvaWNlcy5nZXQoKSBvYmpl
Y3RBdEluZGV4OmtdOw0KLSAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzID0gW05TU3Bl
ZWNoU3ludGhlc2l6ZXIgYXR0cmlidXRlc0ZvclZvaWNlOnZvaWNlTmFtZV07DQotDQotICAgICAg
ICBOU1N0cmluZyAqdm9pY2VVUkkgPSBbYXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUlk
ZW50aWZpZXJdOw0KLSAgICAgICAgTlNTdHJpbmcgKm5hbWUgPSBbYXR0cmlidXRlcyBvYmplY3RG
b3JLZXk6TlNWb2ljZU5hbWVdOw0KLSAgICAgICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gW2F0dHJp
YnV0ZXMgb2JqZWN0Rm9yS2V5Ok5TVm9pY2VMb2NhbGVJZGVudGlmaWVyXTsNCi0gICAgICAgIGF1
dG8gZGVmYXVsdFZvaWNlVVJJID0gc3BlZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRp
ZmllckZvckxvY2FsZShhZG9wdE5TKFtbTlNMb2NhbGUgYWxsb2NdIGluaXRXaXRoTG9jYWxlSWRl
bnRpZmllcjpsYW5ndWFnZV0pLmdldCgpKTsNCi0NCi0gICAgICAgIC8vIENoYW5nZSB0byBCQ1At
NDcgZm9ybWF0IGFzIGRlZmluZWQgYnkgc3BlYy4NCi0gICAgICAgIGxhbmd1YWdlID0gW2xhbmd1
YWdlIHN0cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNPZlN0cmluZzpAIl8iIHdpdGhTdHJpbmc6
QCItIl07DQotDQotICAgICAgICBib29sIGlzRGVmYXVsdCA9IFsoX19icmlkZ2UgTlNTdHJpbmcg
KilkZWZhdWx0Vm9pY2VVUkkuZ2V0KCkgaXNFcXVhbFRvU3RyaW5nOnZvaWNlVVJJXTsNCi0NCi0g
ICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpj
cmVhdGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQpKTsNCi0gICAg
fQ0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnBhdXNlKCkNCi17DQot
ICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBwYXVzZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplcjo6cmVzdW1lKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNo
V3JhcHBlciByZXN1bWVdOw0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6
OnNwZWFrKFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4mJiB1dHRlcmFu
Y2UpDQotew0KLSAgICBpZiAoIW1fcGxhdGZvcm1TcGVlY2hXcmFwcGVyKQ0KLSAgICAgICAgbV9w
bGF0Zm9ybVNwZWVjaFdyYXBwZXIgPSBhZG9wdE5TKFtbV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBl
ciBhbGxvY10gaW5pdFdpdGhTcGVlY2hTeW50aGVzaXplcjp0aGlzXSk7DQotDQotICAgIFttX3Bs
YXRmb3JtU3BlZWNoV3JhcHBlciBzcGVha1V0dGVyYW5jZTp1dHRlcmFuY2UuZ2V0KCldOw0KLX0N
Ci0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmNhbmNlbCgpDQotew0KLSAgICBb
bV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgY2FuY2VsXTsNCi19DQotDQotdm9pZCBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyOjpyZXNldFN0YXRlKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNo
V3JhcHBlciBjYW5jZWxdOw0KLX0NCi0NCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQotDQotI2Vu
ZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShNQUMpDQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZw0K
aW5kZXggODAxYTc1MmJmYzVmLi4yNWNjNTcwMjdiMWYgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEs
MjIgQEANCisyMDIxLTExLTI3ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+
DQorDQorICAgICAgICBBWDogVW5pZnkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdl
IGZvciBNYWMvaU9TDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxODk1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQorICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIENyZWF0ZSBhIG5l
dyBtZXNzYWdlIGZvciByZXNldHRpbmcgc3BlZWNoIHN5bnRoZXNpcyBzdGF0ZSB3aGVuIHRoZSBE
T01XaW5kb3cgY2hhbmdlcw0KKyAgICAgICAgYnV0IHRoZSBQYWdlIChhbmQgaXRzIHJlZmVyZW5j
ZWQgc3BlZWNoIHN5bnRoZXNpcykgc3RheXMgdGhlIHNhbWUuDQorDQorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpz
cGVlY2hTeW50aGVzaXNSZXNldFN0YXRlKToNCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOg0K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5jcHA6DQorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnJl
c2V0U3RhdGUpOg0KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFN5bnRoZXNpc0NsaWVudC5oOg0KKw0KIDIwMjEtMTEtMjMgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4NCiANCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBt
aWQgTm92ZW1iZXIgMjAyMSBlZGl0aW9uDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHANCmluZGV4IGY2YWI4MDlkYzhjNC4uNDQ5NTcwOWI1ZjI1IDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KQEAgLTEwNTE1LDYgKzEwNTE1LDExIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpzcGVlY2hTeW50aGVzaXNDYW5jZWwoKQ0KICAgICBzcGVlY2hT
eW50aGVzaXNEYXRhKCkuc3ludGhlc2l6ZXItPmNhbmNlbCgpOw0KIH0NCiANCit2b2lkIFdlYlBh
Z2VQcm94eTo6c3BlZWNoU3ludGhlc2lzUmVzZXRTdGF0ZSgpDQorew0KKyAgICBzcGVlY2hTeW50
aGVzaXNEYXRhKCkuc3ludGhlc2l6ZXItPnJlc2V0U3RhdGUoKTsNCit9DQorDQogdm9pZCBXZWJQ
YWdlUHJveHk6OnNwZWVjaFN5bnRoZXNpc1BhdXNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikNCiB7DQogICAgIHNwZWVjaFN5bnRoZXNpc0RhdGEoKS5zcGVh
a2luZ1BhdXNlZENvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcik7
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaA0KaW5kZXggNTNiYjZkNWRkMTBj
Li5iMmY1NjVmZjA1NDMgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaA0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgN
CkBAIC0xODEyLDYgKzE4MTIsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lz
Q2FuY2VsKCk7DQogICAgIHZvaWQgc3BlZWNoU3ludGhlc2lzUGF1c2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsNCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXN1bWUoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsNCisgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNSZXNldFN0YXRl
KCk7DQogI2VuZGlmDQogDQogICAgIHZvaWQgY29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3Qg
U3RyaW5nJiwgV1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7DQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQppbmRleCA2MmFlYjU4
N2Y3YzguLjA4Nzc4YWU2NTQ0OCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbg0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQpAQCAtNTQ0LDYgKzU0NCw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7DQogICAgIFNwZWVjaFN5bnRoZXNpc0NhbmNlbCgpDQogICAgIFNwZWVj
aFN5bnRoZXNpc1BhdXNlKCkgLT4gKCkgQXN5bmMNCiAgICAgU3BlZWNoU3ludGhlc2lzUmVzdW1l
KCkgLT4gKCkgQXN5bmMNCisgICAgU3BlZWNoU3ludGhlc2lzUmVzZXRTdGF0ZSgpDQogI2VuZGlm
DQogDQogI2lmIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmNwcA0KaW5kZXggOWExOTE2YWE4NmQ5Li5jNGQwZGNjMDNkNWQgMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcA0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHANCkBAIC01NSw2ICs1NSwx
MSBAQCBXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlciogV2ViU3BlZWNoU3lu
dGhlc2lzQ2xpZW50Ojpjb3JlUGFnZU9ic2Vydg0KICAgICByZXR1cm4gbnVsbHB0cjsNCiB9DQog
DQordm9pZCBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnJlc2V0U3RhdGUoKQ0KK3sNCisgICAg
bV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3BlZWNoU3ludGhlc2lzUmVzZXRT
dGF0ZSgpKTsNCit9DQorDQogdm9pZCBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnNwZWFrKFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gdXR0ZXJhbmNl
KQ0KIHsNCiAgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IHN0YXJ0ZWRDb21wbGV0
aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSgpIG11dGFi
bGUgew0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaA0KaW5kZXggN2JkODc1OTA1
YTY1Li45NmQ4ZTIzYTlhMTkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQu
aA0KQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOg0KIHByaXZhdGU6DQogICAgIHZvaWQgc2V0T2Jz
ZXJ2ZXIoV2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlcj4gb2Jz
ZXJ2ZXIpIG92ZXJyaWRlIHsgbV9vYnNlcnZlciA9IG9ic2VydmVyOyB9DQogICAgIFdlYWtQdHI8
V2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzQ2xpZW50T2JzZXJ2ZXI+IG9ic2VydmVyKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQ0KKyAgICB2b2lkIHJlc2V0U3RhdGUoKSBv
dmVycmlkZTsNCiANCiAgICAgV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzQ2xpZW50T2JzZXJ2ZXIq
IGNvcmVQYWdlT2JzZXJ2ZXIoKSBjb25zdDsNCiAgICAgDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445227</attachid>
            <date>2021-11-27 16:33:56 -0800</date>
            <delta_ts>2021-11-27 22:43:00 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>50782</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMjI2YTY1OGJmNDUwLi45NGNjMTQ1ZmFjMmYgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NSBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBmYXN0L3NwZWVj
aHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50
eHQ6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoNCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6DQorDQogMjAyMS0xMS0yMyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+DQogDQogICAgICAgICBDU1A6
IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb24gZXZlbnQgaXMgYWx3YXlzIHVzaW5nIGRvY3VtZW50
IGFzIHRhcmdldA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHkt
c3RyaW5nLWV4cGVjdGVkLnR4dA0KaW5kZXggMGEwM2ZmOTJjYTYyLi42Nzc4ZWI2MWFjZTQgMTAw
NjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhl
c2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50eHQNCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLWV4
cGVjdGVkLnR4dA0KQEAgLTUsNiArNSw4IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFDQogDQog
UEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgZmFsc2UNCiBQQVNTIGV2ZW50LmVsYXBz
ZWRUaW1lID4gMCBpcyB0cnVlDQorUEFTUyBzcGVlY2hTeW50aGVzaXMuc3BlYWtpbmcgaXMgdHJ1
ZQ0KK1BBU1MgZXZlbnQuZWxhcHNlZFRpbWUgPiAwIGlzIHRydWUNCiBQQVNTIHNwZWVjaFN5bnRo
ZXNpcy5zcGVha2luZyBpcyBmYWxzZQ0KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUN
CiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZw0KaW5kZXggNWEyMGE3MWYzZDY4Li4yODY3
ZTQ0Y2I4MTEgMTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
DQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDEz
IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0K
Kw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBm
b3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQu
dHh0Og0KKw0KIDIwMjEtMTEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPg0KIA0KICAgICAgICAgQ1NQOiBzZWN1cml0eSBwb2xpY3kgdmlvbGF0aW9uIGV2ZW50
IGlzIGFsd2F5cyB1c2luZyBkb2N1bWVudCBhcyB0YXJnZXQNCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3lu
dGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2
ZW50cy1leHBlY3RlZC50eHQNCmluZGV4IGRjOTFhOGIxYTYxMy4uMjg0YTcyYTEyOTUzIDEwMDY0
NA0KLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVl
Y2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQudHh0DQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1hcGkvU3Bl
ZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy1leHBlY3RlZC50eHQNCkBAIC0xLDQgKzEsNCBAQA0K
IA0KLUZBSUwgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVuZCBldmVu
dHMgd2l0aCBlbXB0eSB1dHRlcmFuY2UgYXNzZXJ0X3RydWU6IE5vdCBleHBlY3RpbmcgZXZlbnQs
IGJ1dCBnb3QgZW5kIGV2ZW50IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlDQorUEFTUyBzcGVlY2hT
eW50aGVzaXMuc3BlYWsoKSBmaXJlcyBzdGFydCBhbmQgZW5kIGV2ZW50cyB3aXRoIGVtcHR5IHV0
dGVyYW5jZQ0KIFBBU1Mgc3BlZWNoU3ludGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVu
ZCBldmVudHMNCiANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtY2F0YWxp
bmEtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtY2F0YWxp
bmEtd2sxL1Rlc3RFeHBlY3RhdGlvbnMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw
MDAwMDAwMDAuLmEwMzU3NzJjNzZjYg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMS9UZXN0RXhwZWN0YXRpb25zDQpAQCAtMCwwICsxLDQg
QEANCisjIFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiBlbnRyaWVzIGZvciBleHBlY3RhdGlvbnMg
dGhhdCBhcmUgc3BlY2lmaWMNCisjIHRvIHRoZSBBcHBsZSBNYWMgQ2F0YWxpbmEgcG9ydCBydW5u
aW5nIFdlYktpdDEgKER1bXBSZW5kZXJUcmVlKQ0KKw0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hTeW50aGVzaXMtc3BlYWstZXZlbnRzLmh0bWwgWyBT
a2lwIF0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMN
CmluZGV4IDg0NzFmMjIyYzUzMy4uNzdlMzA3NmY1ODY4IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMNCkBAIC03Miw3ICs3Miw2IEBAIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYXVkaW8tb3V0cHV0IFsgU2tpcCBdDQogDQogZmFz
dC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi1hZnRlci1ndW0uaHRtbCBbIFNr
aXAgXQ0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tYWZ0ZXItZGVu
aWVkLWd1bS5odG1sIFsgU2tpcCBdDQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
cGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1wYXVzZS1yZXN1bWUudGVudGF0aXZlLmh0bWwgWyBT
a2lwIF0NCiANCiAjIERhdGFsaXN0IGlzIHVuc3VwcG9ydGVkIGluIFdLMQ0KIGFjY2Vzc2liaWxp
dHkvZGF0YWxpc3QuaHRtbCBbIFdvbnRGaXggXQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucw0KaW5kZXggZDZjZWQ4NjBkZjFhLi41NGE0ODdhMDFkYmQg
MTAwNjQ0DQotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucw0K
QEAgLTEyMDgsOSArMTIwOCw2IEBAIHdlYmtpdC5vcmcvYi8xNzk3OTYgaHR0cC90ZXN0cy9jYWNo
ZS9kaXNrLWNhY2hlL2Rpc2stY2FjaGUtdmFsaWRhdGlvbi1iYWNrLW5hdmlnDQogIyA8cmRhcjov
L3Byb2JsZW0vNjQ3MDA2NTg+IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1mb250LWxvYWRpbmcvaWRsaGFybmVzcy5odHRwcy5odG1sIGlzIGEgZmxha3kgdGltZW91dCBh
bmQgZmxha3kgZmFpbHVyZQ0KIFsgQmlnU3VyKyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmcvaWRsaGFybmVzcy5odHRwcy5odG1sIFsgUGFzcyBG
YWlsdXJlIFRpbWVvdXQgXQ0KIA0KLSMgcmRhcjovLzY2NzAxODE1IChSRUdSRVNTSU9OICgyMEEy
MzIxYS0yMEEyMzQ4Yik6IGZhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3Bl
YWstZW1wdHktc3RyaW5nLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlKQ0KLVsgQmlnU3VyKyBdIGZh
c3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQ0KLQ0KICMgcmRhcjovLzY2NzAzNzczIChSRUdSRVNTSU9OICgy
MEEyMzE2LTIwQTIzNDhiKTogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcGx1Z2luLWJsb2NrZWQtaW4tYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgaXMgYSBjb25zdGFu
dCBmYWlsdXJlKQ0KIFsgYXJtNjQgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9wbHVnaW4tYmxvY2tlZC1pbi1hYm91dC1ibGFuay13aW5kb3cuaHRtbCBbIFNraXAg
XQ0KIA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IDZk
ZDQ3MWNlNGFlMy4uNTdkMzNmNDM3NWI0IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zDQpAQCAtMjAzMiwxMCArMjAzMiw2IEBAIHdlYmtpdC5vcmcvYi8yMTc2
NDEgWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50LXRp
bWVvdXQuDQogDQogd2Via2l0Lm9yZy9iLzIxNzYyMCBpbnNwZWN0b3IvYXVkaXQvYmFzaWMtYXN5
bmMuaHRtbCBbIFBhc3MgVGltZW91dCBdDQogDQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay10d2ljZS5odG1sIFsgU2tpcCBd
DQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRo
ZXNpcy1zcGVhay13aXRob3V0LWFjdGl2YXRpb24tZmFpbHMudGVudGF0aXZlLmh0bWwgWyBTa2lw
IF0NCi13ZWJraXQub3JnL2IvMjI3NTAxIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy5odG1sIFsg
U2tpcCBdDQotDQogd2Via2l0Lm9yZy9iLzIxNzY2OSBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXItc3Bpbm5pbmctbWVzc2FnZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0NCiANCiB3ZWJraXQub3JnL2IvMjE3OTk0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLW91dHB1dC1jaGFubmVsLWNvdW50Lmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQ0KQEAgLTIzMDIsOCArMjI5OCw2IEBAIHdlYmtpdC5vcmcvYi8yMjkyOTEgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtDQogDQog
I3JkYXI6Ly84MjE0NjM2NyAoW01hYywgaU9TIFJlbGVhc2VdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2xldHMvbGF5b3V0LXdvcmtsZXQtY3NwLmh0dHBzLmh0bWwgaXMgYSBm
bGFreSBmYWlsdXJlKSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xh
eW91dC13b3JrbGV0LWNzcC5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0gDQogDQotd2Via2l0
Lm9yZy9iLzIyODM5NiBmYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFr
LWVtcHR5LXN0cmluZy5odG1sIFsgUGFzcyBGYWlsdXJlIF0NCi0NCiB3ZWJraXQub3JnL2IvMjI4
MTc2IFsgTW9qYXZlIENhdGFsaW5hIEJpZ1N1ciBdIGZhc3QvdGV4dC92YXJpYWJsZS1zeXN0ZW0t
Zm9udC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdDQogd2Via2l0Lm9yZy9iLzIyODE3NiBbIE1v
bnRlcmV5IF0gZmFzdC90ZXh0L3ZhcmlhYmxlLXN5c3RlbS1mb250Lmh0bWwgWyBQYXNzIF0NCiAN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
DQppbmRleCBlYWIzYjIwZGE1ZjQuLmJhZmZmZmJiOTUzNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwxMyBA
QA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisN
CisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2UgZm9y
IE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1I
YXZlLmg6DQorDQogMjAyMS0xMS0xOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9y
Zz4NCiANCiAgICAgICAgIFtNb2RlbF0gYWRkIGF1ZGlvIHN1cHBvcnQNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oDQppbmRleCBjY2VjMWVmZDExZDIuLjAyNDUzYzhiMzQ1MiAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oDQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhh
dmUuaA0KQEAgLTc1Nyw3ICs3NTcsNyBAQA0KICNlbmRpZg0KICNlbmRpZg0KIA0KLSNpZiAoUExB
VEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDE0MDMwMA0KKyNpZiAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0
MDMwMCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+IDEyMDAwMCkNCiAjaWYgIWRlZmluZWQoSEFWRV9BVlNQRUVDSFNZTlRIRVNJU19TWVNURU1W
T0lDRSkNCiAjZGVmaW5lIEhBVkVfQVZTUEVFQ0hTWU5USEVTSVNfU1lTVEVNVk9JQ0UgMQ0KICNl
bmRpZg0KQEAgLTc2OSwxMiArNzY5LDYgQEANCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMA0K
LSNpZiAhZGVmaW5lZChIQVZFX1NQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotI2RlZmlu
ZSBIQVZFX1NQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkgMQ0KLSNlbmRpZg0KLSNlbmRpZg0K
LQ0KICNpZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkgJiYgZGVmaW5lZChfX2hhc19hdHRyaWJ1
dGUpDQogI2lmIF9faGFzX2F0dHJpYnV0ZShvYmpjX2RpcmVjdCkgJiYgKCFQTEFURk9STShNQUMp
IHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQ0KICNpZiAhZGVm
aW5lZChIQVZFX05TX0RJUkVDVF9TVVBQT1JUKQ0KQEAgLTEwOTcsMyArMTA5MSw3IEBADQogI2lm
IFBMQVRGT1JNKE1BQykNCiAjZGVmaW5lIEhBVkVfU0NFTkVLSVQgMQ0KICNlbmRpZg0KKw0KKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEz
MDAwMCkNCisjZGVmaW5lIEhBVkVfVU5JRklFRF9TUEVFQ0hTWU5USEVTSVNfRklYX0ZPUl84MTQ2
NTE2NCAxDQorI2VuZGlmDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQppbmRleCA4NTM3ZmY3ODFlMmUuLjhlOGFiN2ZiMjdk
ZCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDI4IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxl
aXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVj
aCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICBBVlNwZWVjaFN5bnRoZXNpemVyIGhhcyBiZWVuIGZ1bGx5IHN1cHBv
cnRlZCBvbiBtYWNPUyBmb3IgYSBudW1iZXIgb2YgeWVhcnMuIFRoaXMgYWxsb3dzIHVzIHRvIHVu
aWZ5IHBsYXRmb3JtIHVzYWdlLg0KKyAgICAgICAgRml4IGEgbnVtYmVyIG9mIHRlc3RzIHRoYXQg
aGFkIGJlZW4gbWFya2VkIGZhaWxpbmcvZmxha3kgcmVsYXRlZCB0byBzcGVlY2ggc3ludGhlc2lz
Lg0KKw0KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwOg0KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKToNCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnN0YXJ0U3BlYWtpbmdJbW1lZGlhdGVseSk6
DQorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpzcGVhayk6DQorICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6DQorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoNCisgICAgICAgICogcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaDoNCisgICAg
ICAgICogcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oOg0KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6DQorICAgICAgICAo
V2ViQ29yZTo6dmFyaWF0aW9uQXhlcyk6DQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVySU9TLm1tOiBSZW1vdmVkLg0KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbTogUmVtb3ZlZC4NCisgICAgICAgICog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNv
Y29hLm1tOiBBZGRlZC4NCisNCiAyMDIxLTExLTIzICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNh
bUBhcHBsZS5jb20+DQogDQogICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZXhwbGljaXQgaW5p
dGlhbGl6ZXJfbGlzdCB1c2FnZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuY3BwDQppbmRleCAxMmM2ODM5ZGRiYTQuLmVhZjNhMmUxZTc5OCAx
MDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
cy5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
cy5jcHANCkBAIC01OSw4ICs1OSwxMCBAQCBTcGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNp
cyhXZWFrUHRyPFNwZWVjaFN5bnRoZXNpc0NsaWVudD4gY2xpZW50LCBEb2N1bWVudA0KICAgICBV
TlVTRURfUEFSQU0oZG9jdW1lbnQpOw0KICNlbmRpZg0KIA0KLSAgICBpZiAobV9zcGVlY2hTeW50
aGVzaXNDbGllbnQpDQorICAgIGlmIChtX3NwZWVjaFN5bnRoZXNpc0NsaWVudCkgew0KICAgICAg
ICAgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQtPnNldE9ic2VydmVyKCp0aGlzKTsNCisgICAgICAg
IG1fc3BlZWNoU3ludGhlc2lzQ2xpZW50LT5yZXNldFN0YXRlKCk7DQorICAgIH0NCiB9DQogDQog
dm9pZCBTcGVlY2hTeW50aGVzaXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIoc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+IHN5bnRoZXNpemVyKQ0KQEAgLTEyMiwxMiAr
MTI0LDYgQEAgdm9pZCBTcGVlY2hTeW50aGVzaXM6OnN0YXJ0U3BlYWtpbmdJbW1lZGlhdGVseShT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmIHV0dGVyYW4NCiAgICAgbV9jdXJyZW50U3BlZWNoVXR0
ZXJhbmNlID0gJnV0dGVyYW5jZTsNCiAgICAgbV9pc1BhdXNlZCA9IGZhbHNlOw0KIA0KLSAgICAv
LyBaZXJvIGxlbmd0aGVkIHN0cmluZ3Mgc2hvdWxkIGltbWVkaWF0ZWx5IG5vdGlmeSB0aGF0IHRo
ZSBldmVudCBpcyBjb21wbGV0ZS4NCi0gICAgaWYgKHV0dGVyYW5jZS50ZXh0KCkuaXNFbXB0eSgp
KSB7DQotICAgICAgICBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZCh1dHRlcmFuY2UsIGZhbHNlKTsN
Ci0gICAgICAgIHJldHVybjsNCi0gICAgfQ0KLQ0KICAgICBpZiAobV9zcGVlY2hTeW50aGVzaXND
bGllbnQpDQogICAgICAgICBtX3NwZWVjaFN5bnRoZXNpc0NsaWVudC0+c3BlYWsodXR0ZXJhbmNl
LnBsYXRmb3JtVXR0ZXJhbmNlKCkpOw0KICAgICBlbHNlDQpAQCAtMTQ1LDcgKzE0MSw2IEBAIHZv
aWQgU3BlZWNoU3ludGhlc2lzOjpzcGVhayhTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmIHV0dGVy
YW5jZSkNCiAjZW5kaWYNCiANCiAgICAgbV91dHRlcmFuY2VRdWV1ZS5hcHBlbmQodXR0ZXJhbmNl
KTsNCi0NCiAgICAgLy8gSWYgdGhlIHF1ZXVlIHdhcyBlbXB0eSwgc3BlYWsgdGhpcyBpbW1lZGlh
dGVseSBhbmQgYWRkIGl0IHRvIHRoZSBxdWV1ZS4NCiAgICAgaWYgKG1fdXR0ZXJhbmNlUXVldWUu
c2l6ZSgpID09IDEpDQogICAgICAgICBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkobV91dHRlcmFu
Y2VRdWV1ZS5maXJzdCgpKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZw0KaW5kZXggZTcyZGJmZDI3MTBkLi42
NTYyNTZlZmQ0YjggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDE3IEBADQorMjAy
MS0xMS0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAg
ICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3IgTWFjL2lP
Uw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg5
NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOg0KKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoN
CisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOg0KKyAgICAgICAg
KiBwYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oOg0KKyAgICAgICAgKiBwYWwvc3Bp
L21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaDogUmVtb3ZlZC4NCisNCiAyMDIxLTExLTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+DQogDQogICAgICAgICBbV2ViR1BV
XSBVc2UgT3B0aW9uU2V0IHdoZXJlIGl0IG1ha2VzIHNlbnNlIHRvDQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQppbmRleCBhZTY5OTc1ZmJi
YjYuLmJjMzVkOGM2MWJiMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qDQpAQCAtMzIzLDcgKzMyMyw2IEBADQogCQlBMTA4MjZGOTFG
NTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5o
ICovOyB9Ow0KIAkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5
MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovOyB9Ow0KIAkJQTEwODI2RkUxRjU4QTQzMzAwNDc3
MkFDIC8qIE5TR3JhcGhpY3NTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExMDgyNkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmgg
Ki87IH07DQotCQlBMTE3NUI0OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0
ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi87IH07DQogCQlBMTE3
NUI0QjFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlND
ZWxsU1BJLmggKi87IH07DQogCQlBMTE3NUI0RTFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0
QzFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggKi87IH07DQogCQlBMTE3NUI0RjFGNkIz
MzczMDBDNEI5RjAgLyogUG9wdXBNZW51Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5t
bSAqLzsgfTsNCkBAIC03MjgsNyArNzI3LDYgQEANCiAJCUExMDgyNkY3MUY1NzYyOTIwMDQ3NzJB
QyAvKiBXZWJQYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYW5lbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9Ow0KIAkJQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07DQogCQlBMTA4MjZGRDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOU0dyYXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
DQotCQlBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFN5bnRoZXNpc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9Ow0KIAkJQTExNzVCNEExRjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOU0NlbGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1
QjRDMUY2QjMzNzMwMEM0QjlGMCAvKiBQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBN
ZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTE3NUI0RDFGNkIzMzczMDBD
NEI5RjAgLyogUG9wdXBNZW51Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9wdXBNZW51Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTk3OCw3ICs5NzYsNiBAQA0KIAkJCQkw
Qzc3ODU4NDFGNDUxMzBGMDBGNEVCQjYgLyogTlNXaW5kb3dTUEkuaCAqLywNCiAJCQkJMEM3Nzg1
ODUxRjQ1MTMwRjAwRjRFQkI2IC8qIFBJUFNQSS5oICovLA0KIAkJCQkwQzc3ODU4NzFGNDUxMzBG
MDBGNEVCQjYgLyogUXVpY2tMb29rTWFjU1BJLmggKi8sDQotCQkJCUExMTc1QjQ4MUY2QUZGOEUw
MEM0QjlGMCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCAqLywNCiAJCQkJNzFCMTE0MUYyNjgyM0FD
RDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODgxRjQ1MTMw
RjAwRjRFQkI2IC8qIFRlbGVwaG9ueVV0aWxpdGllc1NQSS5oICovLA0KIAkJCSk7DQpAQCAtMTU0
OSw3ICsxNTQ2LDYgQEANCiAJCQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmgg
aW4gSGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8qIFNwZWVjaFNv
ZnRMaW5rLmggaW4gSGVhZGVycyAqLywNCiAJCQkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8q
IFNwZWVjaFNQSS5oIGluIEhlYWRlcnMgKi8sDQotCQkJCUExMTc1QjQ5MUY2QUZGOEUwMEM0QjlG
MCAvKiBTcGVlY2hTeW50aGVzaXNTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkwQzVBRjkyMTFG
NDNBNEM3MDAyRUFDMDIgLyogU1FMaXRlM1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTcxQjEx
NDIwMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLywN
CiAJCQkJMzEzMDhCMTQyMEEyMTcwNTAwM0ZCOTI5IC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBI
ZWFkZXJzICovLA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaA0KaW5kZXggOWRiOWFmOGY3ZWMxLi5hNzM3MDk3N2JkYzggMTAwNjQ0
DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaA0KQEAgLTc2LDYgKzc2LDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBB
VlN0cmVhbVNlc3Npb24pDQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpDQogU09GVF9MSU5LX0NM
QVNTX0ZPUl9IRUFERVIoUEFMLCBBVkF1ZGlvU2Vzc2lvbikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X0hFQURFUihQQUwsIEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCkNCisjZW5kaWYNCisN
CisjaWYgUExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBB
VlNwZWVjaFN5bnRoZXNpc1ZvaWNlKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwg
QVZTcGVlY2hTeW50aGVzaXplcikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFW
U3BlZWNoVXR0ZXJhbmNlKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLm1tDQppbmRleCBkMjFkNDljZDc3MDIuLmJkNmViYmNiOTkx
MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW0NCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW0NCkBAIC0xMDIsNiArMTAyLDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbiwgUEFM
X0UNCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb24sIFBBTF9FWFBP
UlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5k
YXRpb24sIEFWUGVyc2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCwgUEFMX0VYUE9SVCkNCisjZW5k
aWYNCisNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2lzVm9pY2UsIFBB
TF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2l6ZXIsIFBBTF9FWFBPUlQpDQogU09GVF9MSU5L
X0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNo
VXR0ZXJhbmNlLCBQQUxfRVhQT1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdlclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmgNCmluZGV4IGZlY2YxMGNlYTNiZi4uMDQ2
OGJhOTFiYTUzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
QVhTcGVlY2hNYW5hZ2VyU1BJLmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nv
Y29hL0FYU3BlZWNoTWFuYWdlclNQSS5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNwcmFnbWEg
b25jZQ0KIA0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNpZiBQTEFURk9STShDT0NPQSkN
CiANCiAvLyBGSVhNRTogVW5kbyB3aGVuIGlzU3lzdGVtVm9pY2UgaXMgYXZhaWxhYmxlIGluIGFs
bCBTREtzLg0KICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAwDQpAQCAtNDIsNSArNDIs
NSBAQA0KIA0KICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQ0KIA0KLSNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQ0KKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkNCiANCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lz
U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJ
LmgNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYjkyOTc4MmJlYjBjLi4wMDAwMDAw
MDAwMDANCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVz
aXNTUEkuaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNDMgKzAsMCBAQA0KLS8qDQotICogQ29weXJp
Z2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSAqDQot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0DQotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQotICogYXJlIG1ldDoNCi0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0K
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4NCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLg0KLSAqDQotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJw0KLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVINCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMNCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YNCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MNCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpDQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRg0KLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4NCi0gKi8NCi0NCi0jcHJhZ21hIG9uY2UNCi0NCi0jaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykNCi0NCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBs
aWNhdGlvblNlcnZpY2VzUHJpdi5oPg0KLQ0KLSNlbmRpZg0KLQ0KLVdURl9FWFRFUk5fQ19CRUdJ
Tg0KLQ0KLUNGQXJyYXlSZWYgQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoQ0ZUeXBl
UmVmIG1vZGUpOw0KLSNpZiBIQVZFKFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotQ0ZT
dHJpbmdSZWYgQ29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhM
b2NhbGUoQ0ZBcnJheVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZWxzZQ0KLUNGU3RyaW5n
UmVmIEdldElkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUo
Q0ZBcnJheVJlZiB2b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZW5kaWYNCi0NCi1XVEZfRVhURVJO
X0NfRU5EDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQNCmluZGV4IDFhNDY2ODZmNzhjZC4uM2FhMmU2
MjNlMGM2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KQEAgLTI1OSw2ICsyNTksNyBAQCBw
bGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQ0KIHBsYXRmb3Jt
L2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0
b21EYXRhQ29jb2EubW0NCiBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5t
bQ0KK3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSBAbm8t
dW5pZnkNCiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5t
bQ0KIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0NCiBwbGF0Zm9ybS9jb2Nv
YS9SZW1vdGVDb21tYW5kTGlzdGVuZXJDb2NvYS5tbQ0KQEAgLTQ0MSw3ICs0NDIsNiBAQCBwbGF0
Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeUlPUy5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9T
Lm1tDQogcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tDQotcGxhdGZvcm0vaW9zL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1Bs
YXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9Q
cmV2aWV3Q29udmVydGVySU9TLm1tDQogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQ0KQEAgLTQ4
OCw3ICs0ODgsNiBAQCBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZFdyaXRlci5tbQ0KIHBsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVBh
c3RlYm9hcmRNYWMubW0NCiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0NCi1wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KIHBsYXRmb3JtL21hYy9Q
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vbWFjL1Bs
dWdpbkJsb2NrbGlzdC5tbQ0KIHBsYXRmb3JtL21hYy9Qb3dlck9ic2VydmVyTWFjLmNwcA0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5k
ZXggMjg2YzkzNDliMTIyLi4wYzkwYjhmZGM1NjkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KQEAgLTM3MDMsNyArMzcwMyw3IEBA
DQogCQlBOUQyNDgwMTBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ3RkQwRDc1N0U2
OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCAqLzsgfTsNCiAJCUE5RDI0ODA3MEQ3NTdF
N0QwMEZERjk1OSAvKiBKU0RPTU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOUQyNDgwMzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1l
VHlwZS5oICovOyB9Ow0KIAkJQTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5
cGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTlEMjQ4MDUwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9Ow0K
LQkJQUExMkRGNDkxNzQzREY4MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUz
NzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAq
LzsgfTsNCisJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ckNvY29hLm1tICovOyB9Ow0KIAkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNv
ckltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFBMDk3OEVFMEFCQUE2RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsNCiAJCUFBMkE1QUNF
MTZBNDg1RkQwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1
IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi87IH07DQogCQlBQTJBNUFEMDE2QTQ4NjA0MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggKi87IH07DQpAQCAtNzU3Niw3ICs3NTc2LDYgQEANCiAJ
CTI5RDdCQ0Y5MTQ0NEFGN0QwMDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFMDRBMjdCRUQyRjgxRjk4RTkwMjJC
IC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNCZWZvcmVVbmxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJ
MjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9Ow0KLQkJMjlFNEQ4RTAxNkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9Ow0KIAkJMjlGQUY0QjUxOTVBQjA4OTAwQTUyMkRDIC8qIFRleHRVbmRvSW5zZXJ0aW9u
TWFya3VwTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRVbmRvSW5z
ZXJ0aW9uTWFya3VwTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdB
MDI2Q0I2NkVEMDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENTU0tleXdvcmRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQky
QTQxMDdBMjI2Q0I2NkVEMDAzQkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NL
ZXl3b3JkVmFsdWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTEzOTM3LDcg
KzEzOTM2LDcgQEANCiAJCUFBREVGRTQzMjVBRjRGQ0IwMDQwREQ2NyAvKiBGb2N1c09wdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRm9jdXNPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07DQogCQlBQUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0K
IAkJQUFFMjdCNzUxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
b2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBQUUzNzU1RDE3
NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQorCQlBQUUzNzU1RDE3NDI5QkND
MDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFGNUI3QjExNTI0QjRCRDAw
MDRDQjQ5IC8qIFdlYlNvY2tldEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYlNvY2tldEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsN
CiAJCUFCMjNBMzI1MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmVmb3JlVGV4dEluc2Vy
dGVkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUIyM0EzMjYwOUJC
QTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KQEAgLTIzMDA4LDcgKzIzMDA3LDYgQEANCiAJCQkJQkNBQTQ4NkQx
NEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tICovLA0KIAkJCQlD
NUY3NjVCQTE0RTFFQ0Y0MDA2Qzg5OUIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tICovLA0K
IAkJCQlCQzk0RDEwNzBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8s
DQotCQkJCTI5RTREOEUwMTZCMDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTWFjLm1tICovLA0KIAkJCQlDREEyOUExNTFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlTWFjLmggKi8sDQogCQkJCUNEQTI5QTE0MUNCREE1NkMwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gKi8sDQogCQkJCTFBRkZDNDRGMUQ1RTdF
QzcwMDI2N0E2NiAvKiBQbHVnaW5CbG9ja2xpc3QuaCAqLywNCkBAIC0yNTcwNSw3ICsyNTcwMyw2
IEBADQogCQkJCTI2NjAxRUJFMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9y
eUlPUy5tbSAqLywNCiAJCQkJQzUyNzhCMEIxN0YyMTJFQTAwM0EyOTk4IC8qIFBsYXRmb3JtUGFz
dGVib2FyZElPUy5tbSAqLywNCiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRm
b3JtU2NyZWVuSU9TLm1tICovLA0KLQkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLywNCiAJCQkJQ0RBMjlBMkUxQ0JGNzNGQzAw
OTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmggKi8sDQogCQkJCUNEQTI5
QTJGMUNCRjczRkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSAq
LywNCiAJCQkJQTFDMTUwNzcxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXJJT1Mu
bW0gKi8sDQpAQCAtMjU4NjQsNiArMjU4NjEsNyBAQA0KIAkJCQk5QkVEMkNBRjFGN0NDMDYyMDA2
NjYwMTggLyogUGFzdGVib2FyZENvY29hLm1tICovLA0KIAkJCQlGNEZCMzUwMDIzNTBDOTYyMDBG
MDA5NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLywNCiAJCQkJRjQ2MjhBOUUy
MzREM0JCRjAwQkM4ODRDIC8qIFBsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tICovLA0KKwkJCQlB
QUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29h
Lm1tICovLA0KIAkJCQk1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3Lmgg
Ki8sDQogCQkJCTk1QkE0RkFCMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9s
bGVyLmggKi8sDQogCQkJCUNEQTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Np
b25Nb2RlbC5oICovLA0KQEAgLTM3NTg3LDcgKzM3NTg1LDcgQEANCiAJCQkJMUE1NjlEMUEwRDdF
MkI4MjAwN0MzOTgzIC8qIG9iamNfdXRpbGl0eS5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlFMTY5
ODI2MDExMzQ2MzZBMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gaW4gU291cmNlcyAq
LywNCiAJCQkJQ0VBMjg0NjYyMTQxRTg0OTAwRTQwN0U4IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tIGluIFNvdXJjZXMgKi8sDQotCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sDQorCQkJCUFBMTJE
RjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0g
aW4gU291cmNlcyAqLywNCiAJCQkJQ0RBMjlBMzAxQ0JGNzRENDAwOTAxQ0NGIC8qIFBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sDQogCQkJCUNEQTI5QTE2MUNC
REE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gaW4gU291cmNl
cyAqLywNCiAJCQkJNDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmgNCmluZGV4IGY4YmU0NjJhMmUxZi4uNDAzMjlhZDA0YWUy
IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQu
aA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaA0KQEAg
LTQ3LDYgKzQ3LDcgQEAgcHVibGljOg0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCkgPSAwOw0K
ICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUo
KSA9IDA7DQorICAgIHZpcnR1YWwgdm9pZCByZXNldFN0YXRlKCkgPSAwOw0KIA0KIH07DQogDQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5oDQppbmRleCBiNGI4ZDA4YTBjYzMuLjIzYTBmMjkxMjlmMSAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaA0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oDQpAQCAtNzIs
OCArNzIsOCBAQCBwdWJsaWM6DQogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpOw0KICAgICB2aXJ0
dWFsIHZvaWQgcmVzdW1lKCk7DQogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKTsNCisgICAgdmly
dHVhbCB2b2lkIHJlc2V0U3RhdGUoKTsNCiANCi0gICAgdm9pZCByZXNldFN0YXRlKCk7DQogICAg
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ7IH0NCiANCiBwcm90ZWN0ZWQ6DQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyQ29jb2EubW0NCnNpbWlsYXJpdHkgaW5kZXggODglDQpyZW5hbWUgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQ0KcmVu
YW1lIHRvIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJDb2NvYS5tbQ0KaW5kZXggNTg1ODI0NDZiYjQ2Li5jMmJhNTMyOWIwMDQgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cklPUy5tbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplckNvY29hLm1tDQpAQCAtMjUsMTEgKzI1LDE3IEBADQogI2ltcG9ydCAiY29u
ZmlnLmgiDQogI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIg0KIA0KLSNpZiBF
TkFCTEUoU1BFRUNIX1NZTlRIRVNJUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCisjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKENPQ09BKQ0KIA0KICNpbXBvcnQgIlBs
YXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmgiDQogI2ltcG9ydCAiUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNWb2ljZS5oIg0KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlNwZWVjaFN5bnRo
ZXNpcy5oPg0KKw0KKyNpZiBfX2hhc19pbmNsdWRlKDxBVkZBdWRpby9BVlNwZWVjaFN5bnRoZXNp
cy5oPikNCisjaW1wb3J0IDxBVkZBdWRpby9BVlNwZWVjaFN5bnRoZXNpcy5oPg0KKyNlbHNlDQor
I2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPg0KKyNlbmRpZg0KKw0KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJLmg+DQogI2ltcG9ydCA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4NCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+DQpAQCAtNjMs
OCArNjksNyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNo
UmF0ZSgpDQogI2RlZmluZSBBVlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hSYXRlIGdldEFW
U3BlZWNoVXR0ZXJhbmNlRGVmYXVsdFNwZWVjaFJhdGUoKQ0KICNkZWZpbmUgQVZTcGVlY2hVdHRl
cmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hS
YXRlKCkNCiANCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgOiBOU09iamVj
dDxBVlNwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KK0BpbnRlcmZhY2UgV2ViU3BlZWNo
U3ludGhlc2lzV3JhcHBlciA6IE5TT2JqZWN0PEFWU3BlZWNoU3ludGhlc2l6ZXJEZWxlZ2F0ZT4g
ew0KICAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVy
T2JqZWN0Ow0KICAgICAvLyBIb2xkIGEgUmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3
b24ndCBkaXNhcHBlYXIgdW50aWwgdGhlIHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCiAgICAgUmVm
UHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBtX3V0dGVyYW5j
ZTsNCkBAIC0xMDUsMTYgKzExMCwxNSBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFu
Y2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgIC8vIFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNo
b3VsZCBub3QgaGF2ZSBhbiBleGlzdGluZyBzcGVlY2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0K
ICAgICBBU1NFUlQoIW1fdXR0ZXJhbmNlKTsNCiAgICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQog
ICAgIGlmICghdXR0ZXJhbmNlKQ0KICAgICAgICAgcmV0dXJuOw0KLQ0KKyAgICANCiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TDQogICAgIGlmICghbV9zeW50aGVzaXplcikgew0KICAg
ICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlNwZWVjaFN5bnRoZXNp
emVySW5zdGFuY2UoKSBpbml0XSk7DQogICAgICAgICBbbV9zeW50aGVzaXplciBzZXREZWxlZ2F0
ZTpzZWxmXTsNCiAgICAgfQ0KLQ0KKyAgICANCiAgICAgLy8gQ2hvb3NlIHRoZSBiZXN0IHZvaWNl
LCBieSBmaXJzdCBsb29raW5nIGF0IHRoZSB1dHRlcmFuY2Ugdm9pY2UsIHRoZW4gdGhlIHV0dGVy
YW5jZSBsYW5ndWFnZSwNCiAgICAgLy8gdGhlbiBjaG9vc2UgdGhlIGRlZmF1bHQgbGFuZ3VhZ2Uu
DQogICAgIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UqIHV0dGVyYW5jZVZv
aWNlID0gdXR0ZXJhbmNlLT52b2ljZSgpOw0KQEAgLTEzOSw2ICsxNDMsMTIgQEAgc3RhdGljIGZs
b2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAgICBbYXZVdHRl
cmFuY2Ugc2V0Vm9pY2U6YXZWb2ljZV07DQogICAgIG1fdXR0ZXJhbmNlID0gV1RGTW92ZSh1dHRl
cmFuY2UpOw0KIA0KKyAgICAvLyBtYWNPUyB3b24ndCBzZW5kIGEgZGlkIHN0YXJ0IHNwZWFraW5n
IGNhbGxiYWNrIGZvciBlbXB0eSBzdHJpbmdzLg0KKyNpZiAhSEFWRShVTklGSUVEX1NQRUVDSFNZ
TlRIRVNJU19GSVhfRk9SXzgxNDY1MTY0KQ0KKyAgICBpZiAoIW1fdXR0ZXJhbmNlLT50ZXh0KCku
bGVuZ3RoKCkpDQorICAgICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkU3Rh
cnRTcGVha2luZygqbV91dHRlcmFuY2UpOw0KKyNlbmRpZg0KKw0KICAgICBbbV9zeW50aGVzaXpl
ciBzcGVha1V0dGVyYW5jZTphdlV0dGVyYW5jZV07DQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMNCiB9DQpAQCAtMTYzLDYgKzE3MywxMyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hV
dHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMNCiB9DQogDQorLSAodm9pZClyZXNldFN0YXRlDQorew0KKyAgICAvLyBPbiBhIHJlc2V0LCBj
YW5jZWwgdXR0ZXJhbmNlIGFuZCBzZXQgdG8gbmlsIGltbWVkaWF0ZWx5IHNvIHRoZSBuZXh0IHNw
ZWVjaCBqb2IgY29udGludWVzIHdpdGhvdXQgd2FpdGluZyBmb3IgYSBjYWxsYmFjaw0KKyAgICBb
c2VsZiBjYW5jZWxdOw0KKyAgICBtX3V0dGVyYW5jZSA9IG5pbDsNCit9DQorDQogLSAodm9pZClj
YW5jZWwNCiB7DQogICAgIGlmICghbV91dHRlcmFuY2UpDQpAQCAtMTkxLDEwICsyMDgsMTAgQEAg
c3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAg
ICAgICAgcmV0dXJuOw0KIA0KICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFuY2UgdmFyaWFibGUg
aW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFraW5nIGpvYiBpbW1l
ZGlhdGVseS4NCi0gICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KKyAgICBSZWZQdHI8V2Vi
Q29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3RlY3RlZFV0dGVyYW5j
ZSA9IG1fdXR0ZXJhbmNlOw0KICAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7DQogDQotICAgIG1f
c3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqcGxhdGZvcm1V
dHRlcmFuY2UpOw0KKyAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNo
U3BlYWtpbmcoKnByb3RlY3RlZFV0dGVyYW5jZSk7DQogfQ0KIA0KIC0gKHZvaWQpc3BlZWNoU3lu
dGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRQYXVzZVNwZWVj
aFV0dGVyYW5jZTooQVZTcGVlY2hVdHRlcmFuY2UgKil1dHRlcmFuY2UNCkBAIC0yMjUsMTAgKzI0
MiwxMCBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0
ZSgpDQogICAgICAgICByZXR1cm47DQogDQogICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2
YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcg
am9iIGltbWVkaWF0ZWx5Lg0KLSAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQorICAgIFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdGVk
VXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQogICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsNCiAN
Ci0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCpw
bGF0Zm9ybVV0dGVyYW5jZSk7DQorICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5k
aWRGaW5pc2hTcGVha2luZygqcHJvdGVjdGVkVXR0ZXJhbmNlKTsNCiB9DQogDQogLSAodm9pZClz
cGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVyIHdpbGxT
cGVha1JhbmdlT2ZTcGVlY2hTdHJpbmc6KE5TUmFuZ2UpY2hhcmFjdGVyUmFuZ2UgdXR0ZXJhbmNl
OihBVlNwZWVjaFV0dGVyYW5jZSAqKXV0dGVyYW5jZQ0KQEAgLTIzOSw3ICsyNTYsNyBAQCBzdGF0
aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgIGlm
ICghbV91dHRlcmFuY2UpDQogICAgICAgICByZXR1cm47DQogDQotICAgIC8vIGlPUyBvbmx5IHN1
cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCisgICAgLy8gQVZTcGVlY2hTeW50aGVzaXplciBvbmx5
IHN1cHBvcnRzIHdvcmQgYm91bmRhcmllcy4NCiAgICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xp
ZW50KCktPmJvdW5kYXJ5RXZlbnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdlYkNvcmU6OlNwZWVj
aEJvdW5kYXJ5OjpTcGVlY2hXb3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdlLmxvY2F0aW9uKTsN
CiB9DQogDQpAQCAtMjc1LDcgKzI5Miw5IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cjo6aW5pdGlhbGl6ZVZvaWNlTGlzdCgpDQogICAgICAgICAgICAgaW5jbHVkZVZvaWNlID0gdm9p
Y2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQ7DQogICAg
ICAgICBpZiAoaW5jbHVkZVZvaWNlKQ0KICNlbHNlDQotICAgICAgICBpZiAodm9pY2UucXVhbGl0
eSA9PSBBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQpDQorICAgICAgICAvLyBB
VlNwZWVjaFN5bnRoZXNpcyBvbiBtYWNPUyBkb2VzIG5vdCBzdXBwb3J0IHF1YWxpdHkgcHJvcGVy
dHkgY29ycmVjdGx5Lg0KKyAgICAgICAgaWYgKHZvaWNlLnF1YWxpdHkgPT0gQVZTcGVlY2hTeW50
aGVzaXNWb2ljZVF1YWxpdHlEZWZhdWx0DQorICAgICAgICAgICAgfHwgKFRBUkdFVF9PU19PU1gg
JiYgIVt2b2ljZVVSSSBoYXNTdWZmaXg6QCJwcmVtaXVtIl0pKQ0KICNlbmRpZg0KICAgICAgICAg
ICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVh
dGUodm9pY2VVUkksIG5hbWUsIGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQpKTsNCiAgICAgfQ0K
QEAgLTMwNyw5ICszMjYsOSBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmNhbmNl
bCgpDQogDQogdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXNldFN0YXRlKCkNCiB7
DQotICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KKyAgICBbbV9wbGF0Zm9y
bVNwZWVjaFdyYXBwZXIgcmVzZXRTdGF0ZV07DQogfQ0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUNCiANCi0jZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpDQorI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9S
TShDT0NPQSkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQN
CmluZGV4IGZhNzQ2NWZmNzU5Yi4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KKysrIC9kZXYvbnVs
bA0KQEAgLTEsMjg5ICswLDAgQEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMNCi0gKiBhcmUgbWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQotICoNCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkNCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQ0KLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUg0KLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SDQotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsDQot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLA0KLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUg0KLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkNCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UNCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KLSAqLw0KLQ0KLSNpbXBvcnQgImNvbmZp
Zy5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCi0NCi0jaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCi0NCi0jaW1wb3J0ICJQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVm9pY2UuaCINCi0jaW1wb3J0IDxBcHBLaXQvTlNTcGVlY2hTeW50aGVzaXplci5o
Pg0KLSNpbXBvcnQgPHBhbC9zcGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oPg0KLSNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4NCi0NCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBw
ZXIgOiBOU09iamVjdDxOU1NwZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KLSAgICBXZWJD
b3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KLSAg
ICAvLyBIb2xkIGEgUmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBl
YXIgdW50aWwgdGhlIHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCi0gICAgV2ViQ29yZTo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIG1fdXR0ZXJhbmNlOw0KLQ0KLSAgICBSZXRhaW5Q
dHI8TlNTcGVlY2hTeW50aGVzaXplcj4gbV9zeW50aGVzaXplcjsNCi0gICAgZmxvYXQgbV9iYXNl
UGl0Y2g7DQotfQ0KLQ0KLS0gKFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0V2l0aFNw
ZWVjaFN5bnRoZXNpemVyOihXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyICopc3lu
dGhlc2l6ZXI7DQotLSAodm9pZClzcGVha1V0dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UgKil1dHRlcmFuY2U7DQotDQotQGVuZA0KLQ0KLUBpbXBsZW1l
bnRhdGlvbiBXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyDQotDQotLSAoV2ViU3BlZWNoU3ludGhl
c2lzV3JhcHBlciAqKWluaXRXaXRoU3BlZWNoU3ludGhlc2l6ZXI6KFdlYkNvcmU6OlBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplcg0KLXsNCi0gICAgaWYgKCEoc2VsZiA9IFtz
dXBlciBpbml0XSkpDQotICAgICAgICByZXR1cm4gbmlsOw0KLQ0KLSAgICBtX3N5bnRoZXNpemVy
T2JqZWN0ID0gc3ludGhlc2l6ZXI7DQotICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZvclN5bnRo
ZXNpemVyXTsNCi0gICAgcmV0dXJuIHNlbGY7DQotfQ0KLQ0KLS8vIE5TU3BlZWNoU3ludGhlc2l6
ZXIgZXhwZWN0cyBhIFdvcmRzIHBlciBNaW51dGUgKFdQTSkgcmF0ZS4gVGhlcmUgaXMgbm8gcHJl
c2V0IGRlZmF1bHQNCi0vLyBidXQgdGhleSByZWNvbW1lbmQgdGhhdCBub3JtYWwgc3BlYWtpbmcg
aXMgMTgwLTIyMCBXUE0NCi0tIChmbG9hdCljb252ZXJ0UmF0ZVRvV1BNOihmbG9hdClyYXRlDQot
ew0KLSAgICAvLyBXZSdsbCBzYXkgMjAwIFdQTSBpcyB0aGUgZGVmYXVsdCAxeCB2YWx1ZS4NCi0g
ICAgcmV0dXJuIDIwMC4wZiAqIHJhdGU7DQotfQ0KLQ0KLS0gKGZsb2F0KWNvbnZlcnRQaXRjaFRv
TlNTcGVlY2hWYWx1ZTooZmxvYXQpcGl0Y2gNCi17DQotICAgIC8vIFRoaXMgYWxsb3dzIHRoZSBi
YXNlIHBpdGNoIHRvIHJhbmdlIGZyb20gMCUgLSAyMDAlIG9mIHRoZSBub3JtYWwgcGl0Y2guDQot
ICAgIHJldHVybiBtX2Jhc2VQaXRjaCAqIHBpdGNoOw0KLX0NCi0NCi0tICh2b2lkKXVwZGF0ZUJh
c2VQaXRjaEZvclN5bnRoZXNpemVyDQotew0KLSAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3
aGVuZXZlciB3ZSBjaGFuZ2Ugdm9pY2VzLCBzaW5jZSB0aGUgYmFzZSBwaXRjaCBpcyBkaWZmZXJl
bnQgZm9yIGVhY2ggdm9pY2UuDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpuaWwgZm9y
UHJvcGVydHk6TlNTcGVlY2hSZXNldFByb3BlcnR5IGVycm9yOm5pbF07DQotICAgIG1fYmFzZVBp
dGNoID0gW1ttX3N5bnRoZXNpemVyIG9iamVjdEZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hCYXNl
UHJvcGVydHkgZXJyb3I6bmlsXSBmbG9hdFZhbHVlXTsNCi19DQotDQotLSAodm9pZClzcGVha1V0
dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgKil1dHRl
cmFuY2UNCi17DQotICAgIC8vIFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3QgaGF2
ZSBhbiBleGlzdGluZyBzcGVlY2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0KLSAgICBBU1NFUlQo
IW1fdXR0ZXJhbmNlKTsNCi0gICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQotICAgIGlmICghbV9z
eW50aGVzaXplcikgew0KLSAgICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1tOU1NwZWVj
aFN5bnRoZXNpemVyIGFsbG9jXSBpbml0V2l0aFZvaWNlOm5pbF0pOw0KLSAgICAgICAgW21fc3lu
dGhlc2l6ZXIgc2V0RGVsZWdhdGU6c2VsZl07DQotICAgIH0NCi0NCi0gICAgLy8gRmluZCBpZiB3
ZSBzaG91bGQgdXNlIGEgc3BlY2lmaWMgdm9pY2UgYmFzZWQgb24gdGhlIHZvaWNlVVJJIGluIHV0
dGVyYW5jZS4NCi0gICAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSB2b2ljZSB0aGF0IG1hdGNoZXMg
dGhlIGxhbmd1YWdlLiBUaGUgTWFjIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgdm9pY2UgcGVyIGxh
bmd1YWdlLCBzbyB0aGUgZmlyc3QNCi0gICAgLy8gb25lIHdpbGwgaGF2ZSB0byBkby4NCi0NCi0g
ICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZSogdXR0ZXJhbmNlVm9pY2Ug
PSB1dHRlcmFuY2UtPnZvaWNlKCk7DQotICAgIC8vIElmIG5vIHZvaWNlIHdhcyBzcGVjaWZpZWQs
IHRyeSB0byBtYXRjaCBieSBsYW5ndWFnZS4NCi0gICAgaWYgKCF1dHRlcmFuY2VWb2ljZSAmJiAh
dXR0ZXJhbmNlLT5sYW5nKCkuaXNFbXB0eSgpKSB7DQotICAgICAgICBmb3IgKGF1dG8mIHZvaWNl
IDogbV9zeW50aGVzaXplck9iamVjdC0+dm9pY2VMaXN0KCkpIHsNCi0gICAgICAgICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh1dHRlcmFuY2UtPmxhbmcoKSwgdm9pY2UtPmxhbmcoKSkp
IHsNCi0gICAgICAgICAgICAgICAgdXR0ZXJhbmNlVm9pY2UgPSB2b2ljZS5nZXQoKTsNCi0gICAg
ICAgICAgICAgICAgaWYgKHZvaWNlLT5pc0RlZmF1bHQoKSkNCi0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAgIH0NCi0gICAgfQ0KLQ0KLSAgICBOU1N0
cmluZyAqdm9pY2VVUkkgPSBuaWw7DQotICAgIGlmICh1dHRlcmFuY2VWb2ljZSkNCi0gICAgICAg
IHZvaWNlVVJJID0gdXR0ZXJhbmNlVm9pY2UtPnZvaWNlVVJJKCk7DQotICAgIGVsc2UNCi0gICAg
ICAgIHZvaWNlVVJJID0gW05TU3BlZWNoU3ludGhlc2l6ZXIgZGVmYXVsdFZvaWNlXTsNCi0NCi0g
ICAgLy8gRG9uJ3Qgc2V0IHRoZSB2b2ljZSB1bmxlc3MgbmVjZXNzYXJ5LiBUaGVyZSdzIGEgYnVn
IGluIE5TU3BlZWNoU3ludGhlc2l6ZXIgc3VjaCB0aGF0DQotICAgIC8vIHNldHRpbmcgdGhlIHZv
aWNlIGZvciB0aGUgZmlyc3QgdGltZSB3aWxsIGNhdXNlIHRoZSBmaXJzdCBzcGVlY2hEb25lIGNh
bGxiYWNrIHRvIHJlcG9ydCBpdCB3YXMgdW5zdWNjZXNzZnVsLg0KLSAgICBCT09MIHVwZGF0ZVBp
dGNoID0gTk87DQotICAgIGlmICghW1ttX3N5bnRoZXNpemVyIHZvaWNlXSBpc0VxdWFsVG9TdHJp
bmc6dm9pY2VVUkldKSB7DQotICAgICAgICBbbV9zeW50aGVzaXplciBzZXRWb2ljZTp2b2ljZVVS
SV07DQotICAgICAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBjaGFuZ2Ug
dm9pY2VzLg0KLSAgICAgICAgdXBkYXRlUGl0Y2ggPSBZRVM7DQotICAgIH0NCi0NCi0gICAgaWYg
KG1fYmFzZVBpdGNoID09IDAgfHwgdXBkYXRlUGl0Y2gpDQotICAgICAgICBbc2VsZiB1cGRhdGVC
YXNlUGl0Y2hGb3JTeW50aGVzaXplcl07DQotDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVj
dDpbTlNOdW1iZXIgbnVtYmVyV2l0aEZsb2F0OltzZWxmIGNvbnZlcnRQaXRjaFRvTlNTcGVlY2hW
YWx1ZTp1dHRlcmFuY2UtPnBpdGNoKCldXSBmb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVBy
b3BlcnR5IGVycm9yOm5pbF07DQotICAgIFttX3N5bnRoZXNpemVyIHNldFJhdGU6W3NlbGYgY29u
dmVydFJhdGVUb1dQTTp1dHRlcmFuY2UtPnJhdGUoKV1dOw0KLSAgICBbbV9zeW50aGVzaXplciBz
ZXRWb2x1bWU6dXR0ZXJhbmNlLT52b2x1bWUoKV07DQotDQotICAgIG1fdXR0ZXJhbmNlID0gdXR0
ZXJhbmNlOw0KLSAgICBbbV9zeW50aGVzaXplciBzdGFydFNwZWFraW5nU3RyaW5nOnV0dGVyYW5j
ZS0+dGV4dCgpXTsNCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0
U3BlYWtpbmcoKm1fdXR0ZXJhbmNlKTsNCi19DQotDQotLSAodm9pZClwYXVzZQ0KLXsNCi0gICAg
aWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6
ZXIgcGF1c2VTcGVha2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQot
ICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRQYXVzZVNwZWFraW5nKCptX3V0
dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpcmVzdW1lDQotew0KLSAgICBpZiAoIW1fdXR0ZXJh
bmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBjb250aW51ZVNw
ZWFraW5nXTsNCi0gICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFJlc3VtZVNw
ZWFraW5nKCptX3V0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpY2FuY2VsDQotew0KLSAgICBp
ZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXpl
ciBzdG9wU3BlYWtpbmdBdEJvdW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAg
ICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVkKCpt
X3V0dGVyYW5jZSk7DQotICAgIG1fdXR0ZXJhbmNlID0gMDsNCi19DQotDQotLSAodm9pZClpbnZh
bGlkYXRlDQotew0KLSAgICBtX3V0dGVyYW5jZSA9IDA7DQotICAgIFttX3N5bnRoZXNpemVyIHNl
dERlbGVnYXRlOm5pbF07DQotICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVha2luZ0F0Qm91bmRh
cnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3lu
dGhlc2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgZGlkRmluaXNoU3BlYWtpbmc6
KEJPT0wpZmluaXNoZWRTcGVha2luZw0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAg
ICAgIHJldHVybjsNCi0NCi0gICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7DQotDQotICAgIC8vIENs
ZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNr
cyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQot
ICAgIG1fdXR0ZXJhbmNlID0gMDsNCi0NCi0gICAgaWYgKGZpbmlzaGVkU3BlYWtpbmcpDQotICAg
ICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnV0
dGVyYW5jZSk7DQotICAgIGVsc2UNCi0gICAgICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVu
dCgpLT5zcGVha2luZ0Vycm9yT2NjdXJyZWQoKnV0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQp
c3BlZWNoU3ludGhlc2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgd2lsbFNwZWFr
V29yZDooTlNSYW5nZSljaGFyYWN0ZXJSYW5nZSBvZlN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcN
Ci17DQotICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOw0KLSAgICBVTlVTRURfUEFSQU0oc3RyaW5n
KTsNCi0NCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAg
Ly8gTWFjIHBsYXRmb3JtIG9ubHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KLSAgICBtX3N5
bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVy
YW5jZSwgV2ViQ29yZTo6U3BlZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFj
dGVyUmFuZ2UubG9jYXRpb24pOw0KLX0NCi0NCi1AZW5kDQotDQotbmFtZXNwYWNlIFdlYkNvcmUg
ew0KLQ0KLVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KQ0KLSAgICA6IG1fc3Bl
ZWNoU3ludGhlc2l6ZXJDbGllbnQoY2xpZW50KQ0KLXsNCi19DQotDQotUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoKQ0KLXsNCi0gICAgW21fcGxh
dGZvcm1TcGVlY2hXcmFwcGVyIGludmFsaWRhdGVdOw0KLX0NCi0NCi1zdGF0aWMgUmV0YWluUHRy
PENGQXJyYXlSZWY+IHNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKQ0KLXsNCi0g
ICAgLy8gR2V0IGFsbCB0aGUgdm9pY2VzIG9mZmVyZWQgYnkgVFRTLg0KLSAgICAvLyBCeSBkZWZh
dWx0IHNwZWVjaCBvbmx5IHJldHVybnMgInByZW1pdW0iIHZvaWNlcywgd2hpY2ggZG9lcyBub3Qg
aW5jbHVkZSBhbGwgdGhlDQotICAgIC8vIGludGVybmF0aW9uYWwgdm9pY2VzLiBUaGlzIGFsbG93
cyB1cyB0byBvZmZlciBzcGVlY2ggc3ludGhlc2lzIGZvciBhbGwgc3VwcG9ydGVkIGxhbmd1YWdl
cy4NCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUo
KF9fYnJpZGdlIENGQXJyYXlSZWYpQFsgQCJWb2ljZUdyb3VwRGVmYXVsdCIsIEAiVm9pY2VHcm91
cENvbXBhY3QiIF0pKTsNCi19DQotDQotc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3Bl
ZWNoU3ludGhlc2lzR2V0RGVmYXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZShOU0xvY2FsZSAq
dXNlckxvY2FsZSkNCi17DQotICAgIGlmICghdXNlckxvY2FsZSkNCi0gICAgICAgIHJldHVybiBu
aWw7DQotDQotI2lmIEhBVkUoU1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0gICAgcmV0
dXJuIGFkb3B0Q0YoQ29weUlkZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdp
dGhMb2NhbGUoc3BlZWNoU3ludGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAoX19i
cmlkZ2UgQ0ZMb2NhbGVSZWYpdXNlckxvY2FsZSkpOw0KLSNlbHNlDQotICAgIHJldHVybiBHZXRJ
ZGVudGlmaWVyU3RyaW5nRm9yUHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5
bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVm
KXVzZXJMb2NhbGUpOw0KLSNlbmRpZg0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXI6OmluaXRpYWxpemVWb2ljZUxpc3QoKQ0KLXsNCi0gICAgYXV0byBhdmFpbGFibGVWb2lj
ZXMgPSBzcGVlY2hTeW50aGVzaXNHZXRWb2ljZUlkZW50aWZpZXJzKCk7DQotICAgIE5TVUludGVn
ZXIgY291bnQgPSBbKF9fYnJpZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0KCkgY291
bnRdOw0KLSAgICBmb3IgKE5TVUludGVnZXIgayA9IDA7IGsgPCBjb3VudDsgaysrKSB7DQotICAg
ICAgICBOU1N0cmluZyAqdm9pY2VOYW1lID0gWyhfX2JyaWRnZSBOU0FycmF5ICopYXZhaWxhYmxl
Vm9pY2VzLmdldCgpIG9iamVjdEF0SW5kZXg6a107DQotICAgICAgICBOU0RpY3Rpb25hcnkgKmF0
dHJpYnV0ZXMgPSBbTlNTcGVlY2hTeW50aGVzaXplciBhdHRyaWJ1dGVzRm9yVm9pY2U6dm9pY2VO
YW1lXTsNCi0NCi0gICAgICAgIE5TU3RyaW5nICp2b2ljZVVSSSA9IFthdHRyaWJ1dGVzIG9iamVj
dEZvcktleTpOU1ZvaWNlSWRlbnRpZmllcl07DQotICAgICAgICBOU1N0cmluZyAqbmFtZSA9IFth
dHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1ZvaWNlTmFtZV07DQotICAgICAgICBOU1N0cmluZyAq
bGFuZ3VhZ2UgPSBbYXR0cmlidXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUxvY2FsZUlkZW50aWZp
ZXJdOw0KLSAgICAgICAgYXV0byBkZWZhdWx0Vm9pY2VVUkkgPSBzcGVlY2hTeW50aGVzaXNHZXRE
ZWZhdWx0Vm9pY2VJZGVudGlmaWVyRm9yTG9jYWxlKGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxvY10g
aW5pdFdpdGhMb2NhbGVJZGVudGlmaWVyOmxhbmd1YWdlXSkuZ2V0KCkpOw0KLQ0KLSAgICAgICAg
Ly8gQ2hhbmdlIHRvIEJDUC00NyBmb3JtYXQgYXMgZGVmaW5lZCBieSBzcGVjLg0KLSAgICAgICAg
bGFuZ3VhZ2UgPSBbbGFuZ3VhZ2Ugc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09mU3RyaW5n
OkAiXyIgd2l0aFN0cmluZzpAIi0iXTsNCi0NCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0ID0gWyhf
X2JyaWRnZSBOU1N0cmluZyAqKWRlZmF1bHRWb2ljZVVSSS5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6
dm9pY2VVUkldOw0KLQ0KLSAgICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVm9pY2U6OmNyZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlz
RGVmYXVsdCkpOw0KLSAgICB9DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cjo6cGF1c2UoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHBhdXNlXTsNCi19
DQotDQotdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUoKQ0KLXsNCi0gICAg
W21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHJlc3VtZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplcjo6c3BlYWsoUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlPiYmIHV0dGVyYW5jZSkNCi17DQotICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdyYXBw
ZXIpDQotICAgICAgICBtX3BsYXRmb3JtU3BlZWNoV3JhcHBlciA9IGFkb3B0TlMoW1tXZWJTcGVl
Y2hTeW50aGVzaXNXcmFwcGVyIGFsbG9jXSBpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOnRoaXNd
KTsNCi0NCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHNwZWFrVXR0ZXJhbmNlOnV0dGVy
YW5jZS5nZXQoKV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y2Fu
Y2VsKCkNCi17DQotICAgIFttX3BsYXRmb3JtU3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KLX0NCi0N
Ci12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KLXsNCi0gICAg
W21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUNCi0NCi0jZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRG
T1JNKE1BQykNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nDQppbmRleCA4MDFhNzUyYmZjNWYuLjI1Y2M1NzAyN2IxZiAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZw0KQEAgLTEsMyArMSwyMiBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2Zs
ZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6
ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
NDM3MjQ3OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAg
ICAgICAgQ3JlYXRlIGEgbmV3IG1lc3NhZ2UgZm9yIHJlc2V0dGluZyBzcGVlY2ggc3ludGhlc2lz
IHN0YXRlIHdoZW4gdGhlIERPTVdpbmRvdyBjaGFuZ2VzDQorICAgICAgICBidXQgdGhlIFBhZ2Ug
KGFuZCBpdHMgcmVmZXJlbmNlZCBzcGVlY2ggc3ludGhlc2lzKSBzdGF5cyB0aGUgc2FtZS4NCisN
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6DQorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnNwZWVjaFN5bnRoZXNpc1Jlc2V0U3RhdGUpOg0KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6DQorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW46DQorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcDoNCisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFN5
bnRoZXNpc0NsaWVudDo6cmVzZXRTdGF0ZSk6DQorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50Lmg6DQorDQogMjAyMS0xMS0yMyAgRG9u
IE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPg0KIA0KICAgICAgICAgTm9uLXVuaWZp
ZWQgYnVpbGQgZml4ZXMsIG1pZCBOb3ZlbWJlciAyMDIxIGVkaXRpb24NCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KaW5kZXggZjZhYjgwOWRjOGM0Li40NDk1NzA5YjVm
MjUgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
DQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwDQpAQCAtMTA1
MTUsNiArMTA1MTUsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNwZWVjaFN5bnRoZXNpc0NhbmNl
bCgpDQogICAgIHNwZWVjaFN5bnRoZXNpc0RhdGEoKS5zeW50aGVzaXplci0+Y2FuY2VsKCk7DQog
fQ0KIA0KK3ZvaWQgV2ViUGFnZVByb3h5OjpzcGVlY2hTeW50aGVzaXNSZXNldFN0YXRlKCkNCit7
DQorICAgIHNwZWVjaFN5bnRoZXNpc0RhdGEoKS5zeW50aGVzaXplci0+cmVzZXRTdGF0ZSgpOw0K
K30NCisNCiB2b2lkIFdlYlBhZ2VQcm94eTo6c3BlZWNoU3ludGhlc2lzUGF1c2UoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQ0KIHsNCiAgICAgc3BlZWNoU3lu
dGhlc2lzRGF0YSgpLnNwZWFraW5nUGF1c2VkQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oDQpp
bmRleCA1M2JiNmQ1ZGQxMGMuLmIyZjU2NWZmMDU0MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaA0KQEAgLTE4MTIsNiArMTgxMiw3IEBAIHB1YmxpYzoNCiAgICAgdm9p
ZCBzcGVlY2hTeW50aGVzaXNDYW5jZWwoKTsNCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNQYXVz
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOw0KICAgICB2b2lkIHNwZWVjaFN5bnRoZXNp
c1Jlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOw0KKyAgICB2b2lkIHNwZWVjaFN5
bnRoZXNpc1Jlc2V0U3RhdGUoKTsNCiAjZW5kaWYNCiANCiAgICAgdm9pZCBjb25maWd1cmVMb2dn
aW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmLCBXVEZMb2dDaGFubmVsU3RhdGUsIFdURkxvZ0xldmVs
KTsNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4NCmluZGV4IDYyYWViNTg3ZjdjOC4uMDg3NzhhZTY1NDQ4IDEwMDY0NA0KLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4NCkBAIC01NDQsNiArNTQ0
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsNCiAgICAgU3BlZWNoU3ludGhlc2lzQ2Fu
Y2VsKCkNCiAgICAgU3BlZWNoU3ludGhlc2lzUGF1c2UoKSAtPiAoKSBBc3luYw0KICAgICBTcGVl
Y2hTeW50aGVzaXNSZXN1bWUoKSAtPiAoKSBBc3luYw0KKyAgICBTcGVlY2hTeW50aGVzaXNSZXNl
dFN0YXRlKCkNCiAjZW5kaWYNCiANCiAjaWYgRU5BQkxFKFVJX1BST0NFU1NfUERGX0hVRCkNCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3Bl
ZWNoU3ludGhlc2lzQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwDQppbmRleCA5YTE5MTZhYTg2ZDku
LmM0ZDBkY2MwM2Q1ZCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNw
cA0KQEAgLTU1LDYgKzU1LDExIEBAIFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0NsaWVudE9ic2Vy
dmVyKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OmNvcmVQYWdlT2JzZXJ2DQogICAgIHJldHVy
biBudWxscHRyOw0KIH0NCiANCit2b2lkIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudDo6cmVzZXRT
dGF0ZSgpDQorew0KKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTcGVl
Y2hTeW50aGVzaXNSZXNldFN0YXRlKCkpOw0KK30NCisNCiB2b2lkIFdlYlNwZWVjaFN5bnRoZXNp
c0NsaWVudDo6c3BlYWsoUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlPiB1dHRlcmFuY2UpDQogew0KICAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4gc3RhcnRlZENvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH1dKCkgbXV0YWJsZSB7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5o
DQppbmRleCA3YmQ4NzU5MDVhNjUuLjk2ZDhlMjNhOWExOSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQu
aA0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFN5bnRoZXNpc0NsaWVudC5oDQpAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6DQogcHJpdmF0ZToN
CiAgICAgdm9pZCBzZXRPYnNlcnZlcihXZWFrUHRyPFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0Ns
aWVudE9ic2VydmVyPiBvYnNlcnZlcikgb3ZlcnJpZGUgeyBtX29ic2VydmVyID0gb2JzZXJ2ZXI7
IH0NCiAgICAgV2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlcj4g
b2JzZXJ2ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX29ic2VydmVyOyB9DQorICAgIHZv
aWQgcmVzZXRTdGF0ZSgpIG92ZXJyaWRlOw0KIA0KICAgICBXZWJDb3JlOjpTcGVlY2hTeW50aGVz
aXNDbGllbnRPYnNlcnZlciogY29yZVBhZ2VPYnNlcnZlcigpIGNvbnN0Ow0KICAgICANCg==
</data>
<flag name="commit-queue"
          id="470366"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445233</attachid>
            <date>2021-11-27 22:43:00 -0800</date>
            <delta_ts>2021-11-29 12:49:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>file_231895.txt</filename>
            <type>text/plain</type>
            <size>51049</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
Zw0KaW5kZXggMjI2YTY1OGJmNDUwLi42Y2MyNTQwMmJkODIgMTAwNjQ0DQotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cNCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwx
NyBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBmYXN0L3NwZWVj
aHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy1leHBlY3RlZC50
eHQ6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy1jYXRhbGluYS13azEvVGVzdEV4cGVjdGF0aW9u
czogQWRkZWQuDQorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoN
CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOg0KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoNCisNCiAyMDIxLTExLTIzICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4NCiANCiAgICAgICAgIENTUDogc2Vj
dXJpdHkgcG9saWN5IHZpb2xhdGlvbiBldmVudCBpcyBhbHdheXMgdXNpbmcgZG9jdW1lbnQgYXMg
dGFyZ2V0DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3Bl
ZWNoLXN5bnRoZXNpcy1zcGVhay1lbXB0eS1zdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay1lbXB0eS1zdHJp
bmctZXhwZWN0ZWQudHh0DQppbmRleCAwYTAzZmY5MmNhNjIuLjY3NzhlYjYxYWNlNCAxMDA2NDQN
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMt
c3BlYWstZW1wdHktc3RyaW5nLWV4cGVjdGVkLnR4dA0KKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay1lbXB0eS1zdHJpbmctZXhwZWN0
ZWQudHh0DQpAQCAtNSw2ICs1LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUNCiANCiBQQVNT
IHNwZWVjaFN5bnRoZXNpcy5zcGVha2luZyBpcyBmYWxzZQ0KIFBBU1MgZXZlbnQuZWxhcHNlZFRp
bWUgPiAwIGlzIHRydWUNCitQQVNTIHNwZWVjaFN5bnRoZXNpcy5zcGVha2luZyBpcyB0cnVlDQor
UEFTUyBldmVudC5lbGFwc2VkVGltZSA+IDAgaXMgdHJ1ZQ0KIFBBU1Mgc3BlZWNoU3ludGhlc2lz
LnNwZWFraW5nIGlzIGZhbHNlDQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQ0KIA0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nDQppbmRleCA1YTIwYTcxZjNkNjguLjE4MWNiNjI2
NDUzNiAxMDA2NDQNCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cNCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMTUgQEAN
CisyMDIxLTExLTI3ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+DQorDQor
ICAgICAgICBBWDogVW5pZnkgc3BlZWNoIHN5bnRoZXNpemVyIHBsYXRmb3JtIHVzYWdlIGZvciBN
YWMvaU9TDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxODk1DQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQzNzI0Nzk+DQorDQorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgIFVwZGF0ZSBleHBlY3RhdGlv
bnMgbm93IHRoYXQgdGhlIHRlc3QgcGFzc2VzLg0KKw0KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hTeW50aGVzaXMtc3BlYWstZXZlbnRzLWV4cGVjdGVkLnR4
dDoNCisNCiAyMDIxLTExLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4NCiANCiAgICAgICAgIENTUDogc2VjdXJpdHkgcG9saWN5IHZpb2xhdGlvbiBldmVudCBp
cyBhbHdheXMgdXNpbmcgZG9jdW1lbnQgYXMgdGFyZ2V0DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRo
ZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay1ldmVu
dHMtZXhwZWN0ZWQudHh0DQppbmRleCBkYzkxYThiMWE2MTMuLjI4NGE3MmExMjk1MyAxMDA2NDQN
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNo
LWFwaS9TcGVlY2hTeW50aGVzaXMtc3BlYWstZXZlbnRzLWV4cGVjdGVkLnR4dA0KKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVj
aFN5bnRoZXNpcy1zcGVhay1ldmVudHMtZXhwZWN0ZWQudHh0DQpAQCAtMSw0ICsxLDQgQEANCiAN
Ci1GQUlMIHNwZWVjaFN5bnRoZXNpcy5zcGVhaygpIGZpcmVzIHN0YXJ0IGFuZCBlbmQgZXZlbnRz
IHdpdGggZW1wdHkgdXR0ZXJhbmNlIGFzc2VydF90cnVlOiBOb3QgZXhwZWN0aW5nIGV2ZW50LCBi
dXQgZ290IGVuZCBldmVudCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQ0KK1BBU1Mgc3BlZWNoU3lu
dGhlc2lzLnNwZWFrKCkgZmlyZXMgc3RhcnQgYW5kIGVuZCBldmVudHMgd2l0aCBlbXB0eSB1dHRl
cmFuY2UNCiBQQVNTIHNwZWVjaFN5bnRoZXNpcy5zcGVhaygpIGZpcmVzIHN0YXJ0IGFuZCBlbmQg
ZXZlbnRzDQogDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWNhdGFsaW5h
LXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWNhdGFsaW5h
LXdrMS9UZXN0RXhwZWN0YXRpb25zDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw
MDAwMDAwLi43NDFkYmQzOWNjMjUNCi0tLSAvZGV2L251bGwNCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1jYXRhbGluYS13azEvVGVzdEV4cGVjdGF0aW9ucw0KQEAgLTAsMCArMSw1IEBA
DQorIyBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gZW50cmllcyBmb3IgZXhwZWN0YXRpb25zIHRo
YXQgYXJlIHNwZWNpZmljDQorIyB0byB0aGUgQXBwbGUgTWFjIENhdGFsaW5hIHBvcnQgcnVubmlu
ZyBXZWJLaXQxIChEdW1wUmVuZGVyVHJlZSkNCisNCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NwZWVjaC1hcGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy5odG1sIFsgU2tp
cCBdDQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5
bnRoZXNpcy1wYXVzZS1yZXN1bWUudGVudGF0aXZlLmh0bWwgWyBTa2lwIF0NCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IDg0NzFmMjIyYzUz
My4uNzdlMzA3NmY1ODY4IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9UZXN0RXhwZWN0YXRpb25zDQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMNCkBAIC03Miw3ICs3Miw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvYXVkaW8tb3V0cHV0IFsgU2tpcCBdDQogDQogZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1yZWNvZ25pdGlvbi1hZnRlci1ndW0uaHRtbCBbIFNraXAgXQ0KIGZhc3Qvc3BlZWNo
cmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tYWZ0ZXItZGVuaWVkLWd1bS5odG1sIFsgU2tp
cCBdDQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5
bnRoZXNpcy1wYXVzZS1yZXN1bWUudGVudGF0aXZlLmh0bWwgWyBTa2lwIF0NCiANCiAjIERhdGFs
aXN0IGlzIHVuc3VwcG9ydGVkIGluIFdLMQ0KIGFjY2Vzc2liaWxpdHkvZGF0YWxpc3QuaHRtbCBb
IFdvbnRGaXggXQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucw0KaW5kZXggZDZjZWQ4NjBkZjFhLi41NGE0ODdhMDFkYmQgMTAwNjQ0DQotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMNCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucw0KQEAgLTEyMDgsOSArMTIwOCw2
IEBAIHdlYmtpdC5vcmcvYi8xNzk3OTYgaHR0cC90ZXN0cy9jYWNoZS9kaXNrLWNhY2hlL2Rpc2st
Y2FjaGUtdmFsaWRhdGlvbi1iYWNrLW5hdmlnDQogIyA8cmRhcjovL3Byb2JsZW0vNjQ3MDA2NTg+
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250LWxvYWRpbmcvaWRs
aGFybmVzcy5odHRwcy5odG1sIGlzIGEgZmxha3kgdGltZW91dCBhbmQgZmxha3kgZmFpbHVyZQ0K
IFsgQmlnU3VyKyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mb250
LWxvYWRpbmcvaWRsaGFybmVzcy5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQ0K
IA0KLSMgcmRhcjovLzY2NzAxODE1IChSRUdSRVNTSU9OICgyMEEyMzIxYS0yMEEyMzQ4Yik6IGZh
c3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLmh0
bWwgaXMgYSBmbGFreSBmYWlsdXJlKQ0KLVsgQmlnU3VyKyBdIGZhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtc3BlYWstZW1wdHktc3RyaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQ0KLQ0KICMgcmRhcjovLzY2NzAzNzczIChSRUdSRVNTSU9OICgyMEEyMzE2LTIwQTIzNDhiKTog
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcGx1Z2luLWJsb2NrZWQt
aW4tYWJvdXQtYmxhbmstd2luZG93Lmh0bWwgaXMgYSBjb25zdGFudCBmYWlsdXJlKQ0KIFsgYXJt
NjQgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9wbHVnaW4tYmxv
Y2tlZC1pbi1hYm91dC1ibGFuay13aW5kb3cuaHRtbCBbIFNraXAgXQ0KIA0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMNCmluZGV4IDZkZDQ3MWNlNGFlMy4uNTdkMzNm
NDM3NWI0IDEwMDY0NA0KLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMNCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zDQpA
QCAtMjAzMiwxMCArMjAzMiw2IEBAIHdlYmtpdC5vcmcvYi8yMTc2NDEgWyBEZWJ1ZyBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50LXRpbWVvdXQuDQogDQogd2Via2l0
Lm9yZy9iLzIxNzYyMCBpbnNwZWN0b3IvYXVkaXQvYmFzaWMtYXN5bmMuaHRtbCBbIFBhc3MgVGlt
ZW91dCBdDQogDQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1Nw
ZWVjaFN5bnRoZXNpcy1zcGVhay10d2ljZS5odG1sIFsgU2tpcCBdDQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRoZXNpcy1zcGVhay13aXRob3V0
LWFjdGl2YXRpb24tZmFpbHMudGVudGF0aXZlLmh0bWwgWyBTa2lwIF0NCi13ZWJraXQub3JnL2Iv
MjI3NTAxIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVjaC1h
cGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLWV2ZW50cy5odG1sIFsgU2tpcCBdDQotDQogd2Via2l0
Lm9yZy9iLzIxNzY2OSBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItc3Bp
bm5pbmctbWVzc2FnZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0NCiANCiB3ZWJraXQub3Jn
L2IvMjE3OTk0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLW91dHB1
dC1jaGFubmVsLWNvdW50Lmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQ0KQEAgLTIzMDIsOCAr
MjI5OCw2IEBAIHdlYmtpdC5vcmcvYi8yMjkyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtDQogDQogI3JkYXI6Ly84MjE0NjM2NyAo
W01hYywgaU9TIFJlbGVhc2VdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xl
dHMvbGF5b3V0LXdvcmtsZXQtY3NwLmh0dHBzLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlKSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2xheW91dC13b3JrbGV0LWNzcC5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0gDQogDQotd2Via2l0Lm9yZy9iLzIyODM5NiBmYXN0
L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLWVtcHR5LXN0cmluZy5odG1s
IFsgUGFzcyBGYWlsdXJlIF0NCi0NCiB3ZWJraXQub3JnL2IvMjI4MTc2IFsgTW9qYXZlIENhdGFs
aW5hIEJpZ1N1ciBdIGZhc3QvdGV4dC92YXJpYWJsZS1zeXN0ZW0tZm9udC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdDQogd2Via2l0Lm9yZy9iLzIyODE3NiBbIE1vbnRlcmV5IF0gZmFzdC90ZXh0
L3ZhcmlhYmxlLXN5c3RlbS1mb250Lmh0bWwgWyBQYXNzIF0NCiANCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQppbmRleCBlYWIzYjIwZGE1
ZjQuLmJhZmZmZmJiOTUzNCAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nDQorKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZw0KQEAgLTEsMyArMSwxMyBAQA0KKzIwMjEtMTEtMjcgIENo
cmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4NCisNCisgICAgICAgIEFYOiBVbmlm
eSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MNCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4OTUNCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6DQorDQogMjAyMS0x
MS0xOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4NCiANCiAgICAgICAgIFtN
b2RlbF0gYWRkIGF1ZGlvIHN1cHBvcnQNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oDQppbmRleCBjY2VjMWVm
ZDExZDIuLjAyNDUzYzhiMzQ1MiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oDQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaA0KQEAgLTc1Nyw3ICs3
NTcsNyBAQA0KICNlbmRpZg0KICNlbmRpZg0KIA0KLSNpZiAoUExBVEZPUk0oSU9TKSB8fCBQTEFU
Rk9STShNQUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDE0MDMwMA0KKyNpZiAoKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0MDMwMCkgfHwgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+IDEyMDAwMCkNCiAjaWYg
IWRlZmluZWQoSEFWRV9BVlNQRUVDSFNZTlRIRVNJU19TWVNURU1WT0lDRSkNCiAjZGVmaW5lIEhB
VkVfQVZTUEVFQ0hTWU5USEVTSVNfU1lTVEVNVk9JQ0UgMQ0KICNlbmRpZg0KQEAgLTc2OSwxMiAr
NzY5LDYgQEANCiAjZW5kaWYNCiAjZW5kaWYNCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMA0KLSNpZiAhZGVmaW5lZChIQVZF
X1NQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotI2RlZmluZSBIQVZFX1NQRUVDSFNZTlRI
RVNJU19NT05URVJFWV9TUEkgMQ0KLSNlbmRpZg0KLSNlbmRpZg0KLQ0KICNpZiBDT01QSUxFUihH
Q0NfQ09NUEFUSUJMRSkgJiYgZGVmaW5lZChfX2hhc19hdHRyaWJ1dGUpDQogI2lmIF9faGFzX2F0
dHJpYnV0ZShvYmpjX2RpcmVjdCkgJiYgKCFQTEFURk9STShNQUMpIHx8IF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKQ0KICNpZiAhZGVmaW5lZChIQVZFX05TX0RJUkVD
VF9TVVBQT1JUKQ0KQEAgLTEwOTcsMyArMTA5MSw3IEBADQogI2lmIFBMQVRGT1JNKE1BQykNCiAj
ZGVmaW5lIEhBVkVfU0NFTkVLSVQgMQ0KICNlbmRpZg0KKw0KKyNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkNCisjZGVmaW5lIEhB
VkVfVU5JRklFRF9TUEVFQ0hTWU5USEVTSVNfRklYX0ZPUl84MTQ2NTE2NCAxDQorI2VuZGlmDQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nDQppbmRleCA4NTM3ZmY3ODFlMmUuLjhlOGFiN2ZiMjdkZCAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZw0KKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQpA
QCAtMSwzICsxLDI4IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hA
YXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0
Zm9ybSB1c2FnZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MzcyNDc5
Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICBB
VlNwZWVjaFN5bnRoZXNpemVyIGhhcyBiZWVuIGZ1bGx5IHN1cHBvcnRlZCBvbiBtYWNPUyBmb3Ig
YSBudW1iZXIgb2YgeWVhcnMuIFRoaXMgYWxsb3dzIHVzIHRvIHVuaWZ5IHBsYXRmb3JtIHVzYWdl
Lg0KKyAgICAgICAgRml4IGEgbnVtYmVyIG9mIHRlc3RzIHRoYXQgaGFkIGJlZW4gbWFya2VkIGZh
aWxpbmcvZmxha3kgcmVsYXRlZCB0byBzcGVlY2ggc3ludGhlc2lzLg0KKw0KKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFN5bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKToNCisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hTeW50aGVzaXM6OnN0YXJ0U3BlYWtpbmdJbW1lZGlhdGVseSk6DQorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoU3ludGhlc2lzOjpzcGVhayk6DQorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6
DQorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoNCisgICAgICAg
ICogcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaDoNCisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplci5oOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6DQorICAgICAgICAoV2ViQ29yZTo6dmFyaWF0aW9u
QXhlcyk6DQorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
SU9TLm1tOiBSZW1vdmVkLg0KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1hYy5tbTogUmVtb3ZlZC4NCisgICAgICAgICogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tOiBBZGRlZC4NCisN
CiAyMDIxLTExLTIzICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+DQogDQog
ICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZXhwbGljaXQgaW5pdGlhbGl6ZXJfbGlzdCB1c2Fn
ZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMu
Y3BwDQppbmRleCAxMmM2ODM5ZGRiYTQuLmVhZjNhMmUxZTc5OCAxMDA2NDQNCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHANCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHANCkBAIC01OSw4ICs1
OSwxMCBAQCBTcGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyhXZWFrUHRyPFNwZWVjaFN5
bnRoZXNpc0NsaWVudD4gY2xpZW50LCBEb2N1bWVudA0KICAgICBVTlVTRURfUEFSQU0oZG9jdW1l
bnQpOw0KICNlbmRpZg0KIA0KLSAgICBpZiAobV9zcGVlY2hTeW50aGVzaXNDbGllbnQpDQorICAg
IGlmIChtX3NwZWVjaFN5bnRoZXNpc0NsaWVudCkgew0KICAgICAgICAgbV9zcGVlY2hTeW50aGVz
aXNDbGllbnQtPnNldE9ic2VydmVyKCp0aGlzKTsNCisgICAgICAgIG1fc3BlZWNoU3ludGhlc2lz
Q2xpZW50LT5yZXNldFN0YXRlKCk7DQorICAgIH0NCiB9DQogDQogdm9pZCBTcGVlY2hTeW50aGVz
aXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXI+IHN5bnRoZXNpemVyKQ0KQEAgLTEyMiwxMiArMTI0LDYgQEAgdm9pZCBTcGVl
Y2hTeW50aGVzaXM6OnN0YXJ0U3BlYWtpbmdJbW1lZGlhdGVseShTcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UmIHV0dGVyYW4NCiAgICAgbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlID0gJnV0dGVyYW5j
ZTsNCiAgICAgbV9pc1BhdXNlZCA9IGZhbHNlOw0KIA0KLSAgICAvLyBaZXJvIGxlbmd0aGVkIHN0
cmluZ3Mgc2hvdWxkIGltbWVkaWF0ZWx5IG5vdGlmeSB0aGF0IHRoZSBldmVudCBpcyBjb21wbGV0
ZS4NCi0gICAgaWYgKHV0dGVyYW5jZS50ZXh0KCkuaXNFbXB0eSgpKSB7DQotICAgICAgICBoYW5k
bGVTcGVha2luZ0NvbXBsZXRlZCh1dHRlcmFuY2UsIGZhbHNlKTsNCi0gICAgICAgIHJldHVybjsN
Ci0gICAgfQ0KLQ0KICAgICBpZiAobV9zcGVlY2hTeW50aGVzaXNDbGllbnQpDQogICAgICAgICBt
X3NwZWVjaFN5bnRoZXNpc0NsaWVudC0+c3BlYWsodXR0ZXJhbmNlLnBsYXRmb3JtVXR0ZXJhbmNl
KCkpOw0KICAgICBlbHNlDQpAQCAtMTQ1LDcgKzE0MSw2IEBAIHZvaWQgU3BlZWNoU3ludGhlc2lz
OjpzcGVhayhTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmIHV0dGVyYW5jZSkNCiAjZW5kaWYNCiAN
CiAgICAgbV91dHRlcmFuY2VRdWV1ZS5hcHBlbmQodXR0ZXJhbmNlKTsNCi0NCiAgICAgLy8gSWYg
dGhlIHF1ZXVlIHdhcyBlbXB0eSwgc3BlYWsgdGhpcyBpbW1lZGlhdGVseSBhbmQgYWRkIGl0IHRv
IHRoZSBxdWV1ZS4NCiAgICAgaWYgKG1fdXR0ZXJhbmNlUXVldWUuc2l6ZSgpID09IDEpDQogICAg
ICAgICBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkobV91dHRlcmFuY2VRdWV1ZS5maXJzdCgpKTsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZw0KaW5kZXggZTcyZGJmZDI3MTBkLi42NTYyNTZlZmQ0YjggMTAwNjQ0
DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDE3IEBADQorMjAyMS0xMS0yNyAgQ2hyaXMgRmxl
aXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgQVg6IFVuaWZ5IHNwZWVj
aCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3IgTWFjL2lPUw0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTg5NQ0KKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg0MzcyNDc5Pg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOg0KKyAgICAg
ICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoNCisgICAgICAgICogcGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOg0KKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0FY
U3BlZWNoTWFuYWdlclNQSS5oOg0KKyAgICAgICAgKiBwYWwvc3BpL21hYy9TcGVlY2hTeW50aGVz
aXNTUEkuaDogUmVtb3ZlZC4NCisNCiAyMDIxLTExLTIyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+DQogDQogICAgICAgICBbV2ViR1BVXSBVc2UgT3B0aW9uU2V0IHdo
ZXJlIGl0IG1ha2VzIHNlbnNlIHRvDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qDQppbmRleCBhZTY5OTc1ZmJiYjYuLmJjMzVkOGM2MWJiMSAx
MDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvag0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qDQpAQCAtMzIzLDcgKzMyMyw2IEBADQogCQlBMTA4MjZGOTFGNTc2MjkyMDA0NzcyQUMgLyog
V2ViUGFuZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICovOyB9Ow0KIAkJQTEwODI2
RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBh
bmVsLm1tICovOyB9Ow0KIAkJQTEwODI2RkUxRjU4QTQzMzAwNDc3MkFDIC8qIE5TR3JhcGhpY3NT
UEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDgy
NkZEMUY1OEE0MzMwMDQ3NzJBQyAvKiBOU0dyYXBoaWNzU1BJLmggKi87IH07DQotCQlBMTE3NUI0
OTFGNkFGRjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0ODFGNkFGRjhFMDBDNEI5RjAg
LyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi87IH07DQogCQlBMTE3NUI0QjFGNkIyRDdFMDBDNEI5
RjAgLyogTlNDZWxsU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTE3NUI0QTFGNkIyRDdFMDBDNEI5RjAgLyogTlNDZWxsU1BJLmggKi87IH07DQog
CQlBMTE3NUI0RTFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3NUI0QzFGNkIzMzczMDBDNEI5RjAg
LyogUG9wdXBNZW51LmggKi87IH07DQogCQlBMTE3NUI0RjFGNkIzMzczMDBDNEI5RjAgLyogUG9w
dXBNZW51Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTExNzVCNEQxRjZCMzM3MzAwQzRCOUYwIC8qIFBvcHVwTWVudS5tbSAqLzsgfTsNCkBAIC03Mjgs
NyArNzI3LDYgQEANCiAJCUExMDgyNkY3MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJQYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJ
QTEwODI2RjgxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBMTA4MjZG
RDFGNThBNDMzMDA0NzcyQUMgLyogTlNHcmFwaGljc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0dy
YXBoaWNzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBMTE3NUI0ODFGNkFG
RjhFMDBDNEI5RjAgLyogU3BlZWNoU3ludGhlc2lzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFN5bnRoZXNpc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQTExNzVCNEEx
RjZCMkQ3RTAwQzRCOUYwIC8qIE5TQ2VsbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0NlbGxTUEku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUExMTc1QjRDMUY2QjMzNzMwMEM0QjlG
MCAvKiBQb3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07DQogCQlBMTE3NUI0RDFGNkIzMzczMDBDNEI5RjAgLyogUG9wdXBNZW51
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG9wdXBNZW51Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9Ow0KQEAgLTk3OCw3ICs5NzYsNiBAQA0KIAkJCQkwQzc3ODU4NDFGNDUxMzBGMDBG
NEVCQjYgLyogTlNXaW5kb3dTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODUxRjQ1MTMwRjAwRjRFQkI2
IC8qIFBJUFNQSS5oICovLA0KIAkJCQkwQzc3ODU4NzFGNDUxMzBGMDBGNEVCQjYgLyogUXVpY2tM
b29rTWFjU1BJLmggKi8sDQotCQkJCUExMTc1QjQ4MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hT
eW50aGVzaXNTUEkuaCAqLywNCiAJCQkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3Rl
bVByZXZpZXdTUEkuaCAqLywNCiAJCQkJMEM3Nzg1ODgxRjQ1MTMwRjAwRjRFQkI2IC8qIFRlbGVw
aG9ueVV0aWxpdGllc1NQSS5oICovLA0KIAkJCSk7DQpAQCAtMTU0OSw3ICsxNTQ2LDYgQEANCiAJ
CQkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywNCiAJ
CQkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywNCiAJCQkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oIGluIEhl
YWRlcnMgKi8sDQotCQkJCUExMTc1QjQ5MUY2QUZGOEUwMEM0QjlGMCAvKiBTcGVlY2hTeW50aGVz
aXNTUEkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkwQzVBRjkyMTFGNDNBNEM3MDAyRUFDMDIgLyog
U1FMaXRlM1NQSS5oIGluIEhlYWRlcnMgKi8sDQogCQkJCTcxQjExNDIwMjY4MjNBQ0QwMDRENjcw
MSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLywNCiAJCQkJMzEzMDhCMTQyMEEy
MTcwNTAwM0ZCOTI5IC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovLA0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0K
aW5kZXggOWRiOWFmOGY3ZWMxLi5hNzM3MDk3N2JkYzggMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgNCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaA0KQEAgLTc2LDYgKzc2
LDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlN0cmVhbVNlc3Npb24pDQog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFM
LCBBVkF1ZGlvU2Vzc2lvbikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUGVy
c2lzdGFibGVDb250ZW50S2V5UmVxdWVzdCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZPUk0oQ09D
T0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNwZWVjaFN5bnRoZXNpc1Zv
aWNlKQ0KIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXpl
cikNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJhbmNlKQ0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rLm1tDQppbmRleCBkMjFkNDljZDc3MDIuLmJkNmViYmNiOTkxMyAxMDA2NDQNCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0NCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0NCkBA
IC0xMDIsNiArMTAyLDkgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbiwgUEFMX0UNCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkNCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb24sIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NM
QVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGVyc2lzdGFi
bGVDb250ZW50S2V5UmVxdWVzdCwgUEFMX0VYUE9SVCkNCisjZW5kaWYNCisNCisjaWYgUExBVEZP
Uk0oQ09DT0EpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWU3BlZWNoU3ludGhlc2lzVm9pY2UsIFBBTF9FWFBPUlQpDQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3Bl
ZWNoU3ludGhlc2l6ZXIsIFBBTF9FWFBPUlQpDQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoVXR0ZXJhbmNlLCBQQUxfRVhQ
T1JUKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3Bl
ZWNoTWFuYWdlclNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVl
Y2hNYW5hZ2VyU1BJLmgNCmluZGV4IGZlY2YxMGNlYTNiZi4uMDQ2OGJhOTFiYTUzIDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVhTcGVlY2hNYW5hZ2VyU1BJ
LmgNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FYU3BlZWNoTWFuYWdl
clNQSS5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNwcmFnbWEgb25jZQ0KIA0KLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQ0KKyNpZiBQTEFURk9STShDT0NPQSkNCiANCiAvLyBGSVhNRTogVW5k
byB3aGVuIGlzU3lzdGVtVm9pY2UgaXMgYXZhaWxhYmxlIGluIGFsbCBTREtzLg0KICNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKSAmJiAwDQpAQCAtNDIsNSArNDIsNSBAQA0KIA0KICNlbmRpZiAv
LyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQ0KIA0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQ0KKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkNCiANCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9tYWMvU3BlZWNoU3ludGhlc2lzU1BJLmgNCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NA0KaW5kZXggYjkyOTc4MmJlYjBjLi4wMDAwMDAwMDAwMDANCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TcGVlY2hTeW50aGVzaXNTUEkuaA0KKysrIC9kZXYv
bnVsbA0KQEAgLTEsNDMgKzAsMCBAQA0KLS8qDQotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KLSAqDQotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQotICogYXJlIG1ldDoNCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodA0KLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KLSAqDQot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJw0KLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMNCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SDQotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YNCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MNCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTg0KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
DQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRg0KLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4N
Ci0gKi8NCi0NCi0jcHJhZ21hIG9uY2UNCi0NCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykN
Ci0NCi0jaW5jbHVkZSA8QXBwbGljYXRpb25TZXJ2aWNlcy9BcHBsaWNhdGlvblNlcnZpY2VzUHJp
di5oPg0KLQ0KLSNlbmRpZg0KLQ0KLVdURl9FWFRFUk5fQ19CRUdJTg0KLQ0KLUNGQXJyYXlSZWYg
Q29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoQ0ZUeXBlUmVmIG1vZGUpOw0KLSNpZiBI
QVZFKFNQRUVDSFNZTlRIRVNJU19NT05URVJFWV9TUEkpDQotQ0ZTdHJpbmdSZWYgQ29weUlkZW50
aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2
b2ljZXMsIENGTG9jYWxlUmVmKTsNCi0jZWxzZQ0KLUNGU3RyaW5nUmVmIEdldElkZW50aWZpZXJT
dHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoQ0ZBcnJheVJlZiB2b2ljZXMs
IENGTG9jYWxlUmVmKTsNCi0jZW5kaWYNCi0NCi1XVEZfRVhURVJOX0NfRU5EDQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQNCmluZGV4IDFhNDY2ODZmNzhjZC4uM2FhMmU2MjNlMGM2IDEwMDY0NA0KLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dA0KKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dA0KQEAgLTI1OSw2ICsyNTksNyBAQCBwbGF0Zm9ybS9jb2NvYS9QYXJl
bnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRD
b2NvYS5tbQ0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0NCiBw
bGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbQ0KK3BsYXRmb3JtL2NvY29h
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbSBAbm8tdW5pZnkNCiBwbGF0Zm9ybS9j
b2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQ0KIHBsYXRmb3JtL2NvY29h
L1Bvd2VyU291cmNlTm90aWZpZXIubW0NCiBwbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21tYW5kTGlz
dGVuZXJDb2NvYS5tbQ0KQEAgLTQ0MSw3ICs0NDIsNiBAQCBwbGF0Zm9ybS9pb3MvUGFzdGVib2Fy
ZElPUy5tbQ0KIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBAbm8tdW5p
ZnkNCiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tDQogcGxhdGZvcm0vaW9z
L1BsYXRmb3JtU2NyZWVuSU9TLm1tDQotcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJJT1MubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZUFWS2l0Lm1tIEBuby11bmlmeQ0KIHBsYXRmb3JtL2lvcy9QcmV2aWV3Q29udmVydGVySU9T
Lm1tDQogcGxhdGZvcm0vaW9zL1F1aWNrTG9vay5tbQ0KQEAgLTQ4OCw3ICs0ODgsNiBAQCBwbGF0
Zm9ybS9tYWMvUGFzdGVib2FyZFdyaXRlci5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeU1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0NCiBw
bGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0NCi1wbGF0Zm9ybS9tYWMvUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplck1hYy5tbQ0KIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWMubW0gQG5vLXVuaWZ5DQogcGxhdGZvcm0vbWFjL1BsdWdpbkJsb2NrbGlzdC5tbQ0K
IHBsYXRmb3JtL21hYy9Qb3dlck9ic2VydmVyTWFjLmNwcA0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvag0KaW5kZXggMjg2YzkzNDliMTIyLi4w
YzkwYjhmZGM1NjkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oNCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvag0KQEAgLTM3MDMsNyArMzcwMyw3IEBADQogCQlBOUQyNDgwMTBENzU3
RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ3RkQwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9N
UGx1Z2luQXJyYXkuaCAqLzsgfTsNCiAJCUE5RDI0ODA3MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RP
TU1pbWVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOUQyNDgwMzBENzU3RTdEMDBGREY5NTkgLyogSlNET01NaW1lVHlwZS5oICovOyB9Ow0KIAkJ
QTlEMjQ4MDkwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTlEMjQ4MDUwRDc1N0U3RDAw
RkRGOTU5IC8qIEpTRE9NTWltZVR5cGVBcnJheS5oICovOyB9Ow0KLQkJQUExMkRGNDkxNzQzREY4
MzAwNERBRkRGIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5QkNDMDA2MjAw
QzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLzsgfTsNCisJCUFBMTJERjQ5
MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUzNzU1RDE3NDI5
QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovOyB9Ow0K
IAkJQUEyMUVDQ0QwQUJGMEZDNjAwMkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBMDk3OEVFMEFCQUE2
RTEwMDg3NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsNCiAJCUFBMkE1QUNFMTZBNDg1RkQwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXNWb2ljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUEyQTVBQzcxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNp
c1ZvaWNlLmggKi87IH07DQogCQlBQTJBNUFEMDE2QTQ4NjA0MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQTJBNUFDNTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmggKi87IH07DQpAQCAtNzU3Niw3ICs3NTc2LDYgQEANCiAJCTI5RDdCQ0Y5MTQ0NEFGN0Qw
MDcwNjE5QyAvKiBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9Ow0KIAkJMjlFMDRBMjdCRUQyRjgxRjk4RTkwMjJCIC8qIEpTQmVmb3JlVW5sb2Fk
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCZWZvcmVVbmxvYWRF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlFNEQ4REYxNkIwOTQwRjAw
Qzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KLQkJ
MjlFNEQ4RTAxNkIwOTU5ODAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMjlGQUY0
QjUxOTVBQjA4OTAwQTUyMkRDIC8qIFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMDI2Q0I2NkVEMDAzQkY3OTcg
LyogQ1NTS2V5d29yZFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0tleXdvcmRWYWx1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyQTQxMDdBMjI2Q0I2NkVEMDAz
QkY3OTcgLyogQ1NTS2V5d29yZFZhbHVlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NLZXl3b3JkVmFsdWUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KQEAgLTEzOTM3LDcgKzEzOTM2LDcgQEANCiAJCUFB
REVGRTQzMjVBRjRGQ0IwMDQwREQ2NyAvKiBGb2N1c09wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Rm9jdXNPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQlBQUUyN0I3NDE2
Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUFFMjdCNzUxNkNCRkMw
RDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07DQorCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9Ow0KIAkJQUFGNUI3QjExNTI0QjRCRDAwMDRDQjQ5IC8qIFdlYlNvY2tl
dEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tl
dEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCUFCMjNBMzI1MDlCQkE3
RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJQUIyM0EzMjYwOUJCQTdEMDAwNjdDQzUzIC8qIEJl
Zm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0K
QEAgLTIzMDA4LDcgKzIzMDA3LDYgQEANCiAJCQkJQkNBQTQ4NkQxNEEwNTI1MzAwODhGQUM0IC8q
IFBsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tICovLA0KIAkJCQlDNUY3NjVCQTE0RTFFQ0Y0MDA2
Qzg5OUIgLyogUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tICovLA0KIAkJCQlCQzk0RDEwNzBDMjc0
Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMubW0gKi8sDQotCQkJCTI5RTREOEUwMTZC
MDk1OTgwMEM4NDcwNCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tICovLA0KIAkJ
CQlDREEyOUExNTFDQkRBNTZDMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFj
LmggKi8sDQogCQkJCUNEQTI5QTE0MUNCREE1NkMwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VNYWMubW0gKi8sDQogCQkJCTFBRkZDNDRGMUQ1RTdFQzcwMDI2N0E2NiAvKiBQbHVn
aW5CbG9ja2xpc3QuaCAqLywNCkBAIC0yNTcwNSw3ICsyNTcwMyw2IEBADQogCQkJCTI2NjAxRUJF
MTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSAqLywNCiAJCQkJ
QzUyNzhCMEIxN0YyMTJFQTAwM0EyOTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbSAqLywN
CiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9TLm1tICov
LA0KLQkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcklPUy5tbSAqLywNCiAJCQkJQ0RBMjlBMkUxQ0JGNzNGQzAwOTAxQ0NGIC8qIFBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0LmggKi8sDQogCQkJCUNEQTI5QTJGMUNCRjczRkMwMDkwMUND
RiAvKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSAqLywNCiAJCQkJQTFDMTUwNzcx
RTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXJJT1MubW0gKi8sDQpAQCAtMjU4NjQs
NiArMjU4NjEsNyBAQA0KIAkJCQk5QkVEMkNBRjFGN0NDMDYyMDA2NjYwMTggLyogUGFzdGVib2Fy
ZENvY29hLm1tICovLA0KIAkJCQlGNEZCMzUwMDIzNTBDOTYyMDBGMDA5NEEgLyogUGFzdGVib2Fy
ZEN1c3RvbURhdGFDb2NvYS5tbSAqLywNCiAJCQkJRjQ2MjhBOUUyMzREM0JCRjAwQkM4ODRDIC8q
IFBsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tICovLA0KKwkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2
MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29hLm1tICovLA0KIAkJCQk1MkIw
RDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8sDQogCQkJCTk1QkE0RkFC
MjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggKi8sDQogCQkJCUNE
QTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbC5oICovLA0KQEAg
LTM3NTg3LDcgKzM3NTg1LDcgQEANCiAJCQkJMUE1NjlEMUEwRDdFMkI4MjAwN0MzOTgzIC8qIG9i
amNfdXRpbGl0eS5tbSBpbiBTb3VyY2VzICovLA0KIAkJCQlFMTY5ODI2MDExMzQ2MzZBMDA4OTQx
MTUgLyogT2JqQ1J1bnRpbWVPYmplY3QubW0gaW4gU291cmNlcyAqLywNCiAJCQkJQ0VBMjg0NjYy
MTQxRTg0OTAwRTQwN0U4IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGluIFNvdXJjZXMg
Ki8sDQotCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZERiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVySU9TLm1tIGluIFNvdXJjZXMgKi8sDQorCQkJCUFBMTJERjQ5MTc0M0RGODMwMDREQUZE
RiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0gaW4gU291cmNlcyAqLywNCiAJ
CQkJQ0RBMjlBMzAxQ0JGNzRENDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0Lm1tIGluIFNvdXJjZXMgKi8sDQogCQkJCUNEQTI5QTE2MUNCREE1NkMwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0gaW4gU291cmNlcyAqLywNCiAJCQkJNDE5MjQy
NDkyMTI3QjkzRTAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1t
IGluIFNvdXJjZXMgKi8sDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hT
eW50aGVzaXNDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmgNCmluZGV4IGY4YmU0NjJhMmUxZi4uNDAzMjlhZDA0YWUyIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaA0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TcGVlY2hTeW50aGVzaXNDbGllbnQuaA0KQEAgLTQ3LDYgKzQ3LDcgQEAgcHVi
bGljOg0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCkgPSAwOw0KICAgICB2aXJ0dWFsIHZvaWQg
cGF1c2UoKSA9IDA7DQogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSA9IDA7DQorICAgIHZpcnR1
YWwgdm9pZCByZXNldFN0YXRlKCkgPSAwOw0KIA0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oDQppbmRleCBiNGI4ZDA4
YTBjYzMuLjIzYTBmMjkxMjlmMSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaA0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oDQpAQCAtNzIsOCArNzIsOCBAQCBwdWJsaWM6
DQogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpOw0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCk7
DQogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKTsNCisgICAgdmlydHVhbCB2b2lkIHJlc2V0U3Rh
dGUoKTsNCiANCi0gICAgdm9pZCByZXNldFN0YXRlKCk7DQogICAgIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2l6
ZXJDbGllbnQ7IH0NCiANCiBwcm90ZWN0ZWQ6DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ29jb2EubW0NCnNp
bWlsYXJpdHkgaW5kZXggODglDQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQ0KcmVuYW1lIHRvIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDb2NvYS5tbQ0KaW5k
ZXggNTg1ODI0NDZiYjQ2Li5jMmJhNTMyOWIwMDQgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQ0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNvY29h
Lm1tDQpAQCAtMjUsMTEgKzI1LDE3IEBADQogI2ltcG9ydCAiY29uZmlnLmgiDQogI2ltcG9ydCAi
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIg0KIA0KLSNpZiBFTkFCTEUoU1BFRUNIX1NZTlRI
RVNJUykgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkNCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVT
SVMpICYmIFBMQVRGT1JNKENPQ09BKQ0KIA0KICNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlLmgiDQogI2ltcG9ydCAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5o
Ig0KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlNwZWVjaFN5bnRoZXNpcy5oPg0KKw0KKyNpZiBf
X2hhc19pbmNsdWRlKDxBVkZBdWRpby9BVlNwZWVjaFN5bnRoZXNpcy5oPikNCisjaW1wb3J0IDxB
VkZBdWRpby9BVlNwZWVjaFN5bnRoZXNpcy5oPg0KKyNlbHNlDQorI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWRm91bmRhdGlvbi5oPg0KKyNlbmRpZg0KKw0KICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
QVhTcGVlY2hNYW5hZ2VyU1BJLmg+DQogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMu
aD4NCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+DQpAQCAtNjMsOCArNjksNyBAQCBzdGF0aWMg
ZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogI2RlZmluZSBB
VlNwZWVjaFV0dGVyYW5jZURlZmF1bHRTcGVlY2hSYXRlIGdldEFWU3BlZWNoVXR0ZXJhbmNlRGVm
YXVsdFNwZWVjaFJhdGUoKQ0KICNkZWZpbmUgQVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNo
UmF0ZSBnZXRBVlNwZWVjaFV0dGVyYW5jZU1heGltdW1TcGVlY2hSYXRlKCkNCiANCi1AaW50ZXJm
YWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgOiBOU09iamVjdDxBVlNwZWVjaFN5bnRoZXNp
emVyRGVsZWdhdGU+DQotew0KK0BpbnRlcmZhY2UgV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciA6
IE5TT2JqZWN0PEFWU3BlZWNoU3ludGhlc2l6ZXJEZWxlZ2F0ZT4gew0KICAgICBXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KICAgICAvLyBI
b2xkIGEgUmVmIHRvIHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBlYXIgdW50
aWwgdGhlIHN5bnRoIGlzIGRvbmUgd2l0aCBpdC4NCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRm
b3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBtX3V0dGVyYW5jZTsNCkBAIC0xMDUsMTYgKzEx
MCwxNSBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0
ZSgpDQogICAgIC8vIFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3QgaGF2ZSBhbiBl
eGlzdGluZyBzcGVlY2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0KICAgICBBU1NFUlQoIW1fdXR0
ZXJhbmNlKTsNCiAgICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQogICAgIGlmICghdXR0ZXJhbmNl
KQ0KICAgICAgICAgcmV0dXJuOw0KLQ0KKyAgICANCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TDQogICAgIGlmICghbV9zeW50aGVzaXplcikgew0KICAgICAgICAgbV9zeW50aGVzaXpl
ciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlNwZWVjaFN5bnRoZXNpemVySW5zdGFuY2UoKSBpbml0
XSk7DQogICAgICAgICBbbV9zeW50aGVzaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsNCiAgICAgfQ0K
LQ0KKyAgICANCiAgICAgLy8gQ2hvb3NlIHRoZSBiZXN0IHZvaWNlLCBieSBmaXJzdCBsb29raW5n
IGF0IHRoZSB1dHRlcmFuY2Ugdm9pY2UsIHRoZW4gdGhlIHV0dGVyYW5jZSBsYW5ndWFnZSwNCiAg
ICAgLy8gdGhlbiBjaG9vc2UgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UuDQogICAgIFdlYkNvcmU6OlBs
YXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UqIHV0dGVyYW5jZVZvaWNlID0gdXR0ZXJhbmNlLT52
b2ljZSgpOw0KQEAgLTEzOSw2ICsxNDMsMTIgQEAgc3RhdGljIGZsb2F0IGdldEFWU3BlZWNoVXR0
ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAgICBbYXZVdHRlcmFuY2Ugc2V0Vm9pY2U6YXZW
b2ljZV07DQogICAgIG1fdXR0ZXJhbmNlID0gV1RGTW92ZSh1dHRlcmFuY2UpOw0KIA0KKyAgICAv
LyBtYWNPUyB3b24ndCBzZW5kIGEgZGlkIHN0YXJ0IHNwZWFraW5nIGNhbGxiYWNrIGZvciBlbXB0
eSBzdHJpbmdzLg0KKyNpZiAhSEFWRShVTklGSUVEX1NQRUVDSFNZTlRIRVNJU19GSVhfRk9SXzgx
NDY1MTY0KQ0KKyAgICBpZiAoIW1fdXR0ZXJhbmNlLT50ZXh0KCkubGVuZ3RoKCkpDQorICAgICAg
ICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkU3RhcnRTcGVha2luZygqbV91dHRl
cmFuY2UpOw0KKyNlbmRpZg0KKw0KICAgICBbbV9zeW50aGVzaXplciBzcGVha1V0dGVyYW5jZTph
dlV0dGVyYW5jZV07DQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMNCiB9DQpAQCAtMTYz
LDYgKzE3MywxMyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3Bl
ZWNoUmF0ZSgpDQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMNCiB9DQogDQorLSAodm9p
ZClyZXNldFN0YXRlDQorew0KKyAgICAvLyBPbiBhIHJlc2V0LCBjYW5jZWwgdXR0ZXJhbmNlIGFu
ZCBzZXQgdG8gbmlsIGltbWVkaWF0ZWx5IHNvIHRoZSBuZXh0IHNwZWVjaCBqb2IgY29udGludWVz
IHdpdGhvdXQgd2FpdGluZyBmb3IgYSBjYWxsYmFjaw0KKyAgICBbc2VsZiBjYW5jZWxdOw0KKyAg
ICBtX3V0dGVyYW5jZSA9IG5pbDsNCit9DQorDQogLSAodm9pZCljYW5jZWwNCiB7DQogICAgIGlm
ICghbV91dHRlcmFuY2UpDQpAQCAtMTkxLDEwICsyMDgsMTAgQEAgc3RhdGljIGZsb2F0IGdldEFW
U3BlZWNoVXR0ZXJhbmNlTWF4aW11bVNwZWVjaFJhdGUoKQ0KICAgICAgICAgcmV0dXJuOw0KIA0K
ICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3Bl
YWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4NCi0gICAgUmVm
UHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0Zm9ybVV0
dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0KKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3RlY3RlZFV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOw0K
ICAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7DQogDQotICAgIG1fc3ludGhlc2l6ZXJPYmplY3Qt
PmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygqcGxhdGZvcm1VdHRlcmFuY2UpOw0KKyAgICBt
X3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnByb3RlY3Rl
ZFV0dGVyYW5jZSk7DQogfQ0KIA0KIC0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KEFWU3BlZWNo
U3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRQYXVzZVNwZWVjaFV0dGVyYW5jZTooQVZTcGVl
Y2hVdHRlcmFuY2UgKil1dHRlcmFuY2UNCkBAIC0yMjUsMTAgKzI0MiwxMCBAQCBzdGF0aWMgZmxv
YXQgZ2V0QVZTcGVlY2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgICAgICByZXR1
cm47DQogDQogICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZp
bmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lg0K
LSAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBs
YXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQorICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdGVkVXR0ZXJhbmNlID0gbV91dHRl
cmFuY2U7DQogICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsNCiANCi0gICAgbV9zeW50aGVzaXpl
ck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKCpwbGF0Zm9ybVV0dGVyYW5jZSk7
DQorICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZygq
cHJvdGVjdGVkVXR0ZXJhbmNlKTsNCiB9DQogDQogLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjoo
QVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVyIHdpbGxTcGVha1JhbmdlT2ZTcGVlY2hT
dHJpbmc6KE5TUmFuZ2UpY2hhcmFjdGVyUmFuZ2UgdXR0ZXJhbmNlOihBVlNwZWVjaFV0dGVyYW5j
ZSAqKXV0dGVyYW5jZQ0KQEAgLTIzOSw3ICsyNTYsNyBAQCBzdGF0aWMgZmxvYXQgZ2V0QVZTcGVl
Y2hVdHRlcmFuY2VNYXhpbXVtU3BlZWNoUmF0ZSgpDQogICAgIGlmICghbV91dHRlcmFuY2UpDQog
ICAgICAgICByZXR1cm47DQogDQotICAgIC8vIGlPUyBvbmx5IHN1cHBvcnRzIHdvcmQgYm91bmRh
cmllcy4NCisgICAgLy8gQVZTcGVlY2hTeW50aGVzaXplciBvbmx5IHN1cHBvcnRzIHdvcmQgYm91
bmRhcmllcy4NCiAgICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmJvdW5kYXJ5RXZl
bnRPY2N1cnJlZCgqbV91dHRlcmFuY2UsIFdlYkNvcmU6OlNwZWVjaEJvdW5kYXJ5OjpTcGVlY2hX
b3JkQm91bmRhcnksIGNoYXJhY3RlclJhbmdlLmxvY2F0aW9uKTsNCiB9DQogDQpAQCAtMjc1LDcg
KzI5Miw5IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6aW5pdGlhbGl6ZVZvaWNl
TGlzdCgpDQogICAgICAgICAgICAgaW5jbHVkZVZvaWNlID0gdm9pY2UucXVhbGl0eSA9PSBBVlNw
ZWVjaFN5bnRoZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQ7DQogICAgICAgICBpZiAoaW5jbHVkZVZv
aWNlKQ0KICNlbHNlDQotICAgICAgICBpZiAodm9pY2UucXVhbGl0eSA9PSBBVlNwZWVjaFN5bnRo
ZXNpc1ZvaWNlUXVhbGl0eURlZmF1bHQpDQorICAgICAgICAvLyBBVlNwZWVjaFN5bnRoZXNpcyBv
biBtYWNPUyBkb2VzIG5vdCBzdXBwb3J0IHF1YWxpdHkgcHJvcGVydHkgY29ycmVjdGx5Lg0KKyAg
ICAgICAgaWYgKHZvaWNlLnF1YWxpdHkgPT0gQVZTcGVlY2hTeW50aGVzaXNWb2ljZVF1YWxpdHlE
ZWZhdWx0DQorICAgICAgICAgICAgfHwgKFRBUkdFVF9PU19PU1ggJiYgIVt2b2ljZVVSSSBoYXNT
dWZmaXg6QCJwcmVtaXVtIl0pKQ0KICNlbmRpZg0KICAgICAgICAgICAgIG1fdm9pY2VMaXN0LmFw
cGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUodm9pY2VVUkksIG5hbWUs
IGxhbmd1YWdlLCB0cnVlLCBpc0RlZmF1bHQpKTsNCiAgICAgfQ0KQEAgLTMwNyw5ICszMjYsOSBA
QCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmNhbmNlbCgpDQogDQogdm9pZCBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXNldFN0YXRlKCkNCiB7DQotICAgIFttX3BsYXRmb3Jt
U3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KKyAgICBbbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIgcmVz
ZXRTdGF0ZV07DQogfQ0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5kaWYgLy8g
RU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpDQorI2VuZGlm
IC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKSAmJiBQTEFURk9STShDT0NPQSkNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyTWFjLm1tDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGZhNzQ2NWZmNzU5
Yi4uMDAwMDAwMDAwMDAwDQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQ0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMjg5ICswLDAg
QEANCi0vKg0KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuDQotICoNCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCi0gKiBhcmUg
bWV0Og0KLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQ0KLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQotICoNCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkNCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0K
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUg0KLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SDQotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsDQotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUg0KLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkNCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KLSAqLw0KLQ0KLSNpbXBvcnQgImNvbmZpZy5oIg0KLSNpbXBvcnQgIlBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCINCi0NCi0jaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVT
SVMpICYmIFBMQVRGT1JNKE1BQykNCi0NCi0jaW1wb3J0ICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5oIg0KLSNpbXBvcnQgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuaCIN
Ci0jaW1wb3J0IDxBcHBLaXQvTlNTcGVlY2hTeW50aGVzaXplci5oPg0KLSNpbXBvcnQgPHBhbC9z
cGkvbWFjL1NwZWVjaFN5bnRoZXNpc1NQSS5oPg0KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4N
Ci0NCi1AaW50ZXJmYWNlIFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgOiBOU09iamVjdDxOU1Nw
ZWVjaFN5bnRoZXNpemVyRGVsZWdhdGU+DQotew0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyKiBtX3N5bnRoZXNpemVyT2JqZWN0Ow0KLSAgICAvLyBIb2xkIGEgUmVmIHRv
IHRoZSB1dHRlcmFuY2Ugc28gdGhhdCBpdCB3b24ndCBkaXNhcHBlYXIgdW50aWwgdGhlIHN5bnRo
IGlzIGRvbmUgd2l0aCBpdC4NCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UqIG1fdXR0ZXJhbmNlOw0KLQ0KLSAgICBSZXRhaW5QdHI8TlNTcGVlY2hTeW50aGVz
aXplcj4gbV9zeW50aGVzaXplcjsNCi0gICAgZmxvYXQgbV9iYXNlUGl0Y2g7DQotfQ0KLQ0KLS0g
KFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXIgKilpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOihX
ZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXI7DQotLSAodm9p
ZClzcGVha1V0dGVyYW5jZTooV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2UgKil1dHRlcmFuY2U7DQotDQotQGVuZA0KLQ0KLUBpbXBsZW1lbnRhdGlvbiBXZWJTcGVlY2hT
eW50aGVzaXNXcmFwcGVyDQotDQotLSAoV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciAqKWluaXRX
aXRoU3BlZWNoU3ludGhlc2l6ZXI6KFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIg
KilzeW50aGVzaXplcg0KLXsNCi0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpDQotICAg
ICAgICByZXR1cm4gbmlsOw0KLQ0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0ID0gc3ludGhlc2l6
ZXI7DQotICAgIFtzZWxmIHVwZGF0ZUJhc2VQaXRjaEZvclN5bnRoZXNpemVyXTsNCi0gICAgcmV0
dXJuIHNlbGY7DQotfQ0KLQ0KLS8vIE5TU3BlZWNoU3ludGhlc2l6ZXIgZXhwZWN0cyBhIFdvcmRz
IHBlciBNaW51dGUgKFdQTSkgcmF0ZS4gVGhlcmUgaXMgbm8gcHJlc2V0IGRlZmF1bHQNCi0vLyBi
dXQgdGhleSByZWNvbW1lbmQgdGhhdCBub3JtYWwgc3BlYWtpbmcgaXMgMTgwLTIyMCBXUE0NCi0t
IChmbG9hdCljb252ZXJ0UmF0ZVRvV1BNOihmbG9hdClyYXRlDQotew0KLSAgICAvLyBXZSdsbCBz
YXkgMjAwIFdQTSBpcyB0aGUgZGVmYXVsdCAxeCB2YWx1ZS4NCi0gICAgcmV0dXJuIDIwMC4wZiAq
IHJhdGU7DQotfQ0KLQ0KLS0gKGZsb2F0KWNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1ZTooZmxv
YXQpcGl0Y2gNCi17DQotICAgIC8vIFRoaXMgYWxsb3dzIHRoZSBiYXNlIHBpdGNoIHRvIHJhbmdl
IGZyb20gMCUgLSAyMDAlIG9mIHRoZSBub3JtYWwgcGl0Y2guDQotICAgIHJldHVybiBtX2Jhc2VQ
aXRjaCAqIHBpdGNoOw0KLX0NCi0NCi0tICh2b2lkKXVwZGF0ZUJhc2VQaXRjaEZvclN5bnRoZXNp
emVyDQotew0KLSAgICAvLyBSZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBjaGFuZ2Ug
dm9pY2VzLCBzaW5jZSB0aGUgYmFzZSBwaXRjaCBpcyBkaWZmZXJlbnQgZm9yIGVhY2ggdm9pY2Uu
DQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpuaWwgZm9yUHJvcGVydHk6TlNTcGVlY2hS
ZXNldFByb3BlcnR5IGVycm9yOm5pbF07DQotICAgIG1fYmFzZVBpdGNoID0gW1ttX3N5bnRoZXNp
emVyIG9iamVjdEZvclByb3BlcnR5Ok5TU3BlZWNoUGl0Y2hCYXNlUHJvcGVydHkgZXJyb3I6bmls
XSBmbG9hdFZhbHVlXTsNCi19DQotDQotLSAodm9pZClzcGVha1V0dGVyYW5jZTooV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UgKil1dHRlcmFuY2UNCi17DQotICAgIC8v
IFdoZW4gc3BlYWsgaXMgY2FsbGVkIHdlIHNob3VsZCBub3QgaGF2ZSBhbiBleGlzdGluZyBzcGVl
Y2ggdXR0ZXJhbmNlIG91dHN0YW5kaW5nLg0KLSAgICBBU1NFUlQoIW1fdXR0ZXJhbmNlKTsNCi0g
ICAgQVNTRVJUKHV0dGVyYW5jZSk7DQotDQotICAgIGlmICghbV9zeW50aGVzaXplcikgew0KLSAg
ICAgICAgbV9zeW50aGVzaXplciA9IGFkb3B0TlMoW1tOU1NwZWVjaFN5bnRoZXNpemVyIGFsbG9j
XSBpbml0V2l0aFZvaWNlOm5pbF0pOw0KLSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0RGVsZWdh
dGU6c2VsZl07DQotICAgIH0NCi0NCi0gICAgLy8gRmluZCBpZiB3ZSBzaG91bGQgdXNlIGEgc3Bl
Y2lmaWMgdm9pY2UgYmFzZWQgb24gdGhlIHZvaWNlVVJJIGluIHV0dGVyYW5jZS4NCi0gICAgLy8g
T3RoZXJ3aXNlLCBmaW5kIHRoZSB2b2ljZSB0aGF0IG1hdGNoZXMgdGhlIGxhbmd1YWdlLiBUaGUg
TWFjIGRvZXNuJ3QgaGF2ZSBhIGRlZmF1bHQgdm9pY2UgcGVyIGxhbmd1YWdlLCBzbyB0aGUgZmly
c3QNCi0gICAgLy8gb25lIHdpbGwgaGF2ZSB0byBkby4NCi0NCi0gICAgV2ViQ29yZTo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNWb2ljZSogdXR0ZXJhbmNlVm9pY2UgPSB1dHRlcmFuY2UtPnZvaWNl
KCk7DQotICAgIC8vIElmIG5vIHZvaWNlIHdhcyBzcGVjaWZpZWQsIHRyeSB0byBtYXRjaCBieSBs
YW5ndWFnZS4NCi0gICAgaWYgKCF1dHRlcmFuY2VWb2ljZSAmJiAhdXR0ZXJhbmNlLT5sYW5nKCku
aXNFbXB0eSgpKSB7DQotICAgICAgICBmb3IgKGF1dG8mIHZvaWNlIDogbV9zeW50aGVzaXplck9i
amVjdC0+dm9pY2VMaXN0KCkpIHsNCi0gICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZSh1dHRlcmFuY2UtPmxhbmcoKSwgdm9pY2UtPmxhbmcoKSkpIHsNCi0gICAgICAgICAgICAg
ICAgdXR0ZXJhbmNlVm9pY2UgPSB2b2ljZS5nZXQoKTsNCi0gICAgICAgICAgICAgICAgaWYgKHZv
aWNlLT5pc0RlZmF1bHQoKSkNCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KLSAgICAgICAg
ICAgIH0NCi0gICAgICAgIH0NCi0gICAgfQ0KLQ0KLSAgICBOU1N0cmluZyAqdm9pY2VVUkkgPSBu
aWw7DQotICAgIGlmICh1dHRlcmFuY2VWb2ljZSkNCi0gICAgICAgIHZvaWNlVVJJID0gdXR0ZXJh
bmNlVm9pY2UtPnZvaWNlVVJJKCk7DQotICAgIGVsc2UNCi0gICAgICAgIHZvaWNlVVJJID0gW05T
U3BlZWNoU3ludGhlc2l6ZXIgZGVmYXVsdFZvaWNlXTsNCi0NCi0gICAgLy8gRG9uJ3Qgc2V0IHRo
ZSB2b2ljZSB1bmxlc3MgbmVjZXNzYXJ5LiBUaGVyZSdzIGEgYnVnIGluIE5TU3BlZWNoU3ludGhl
c2l6ZXIgc3VjaCB0aGF0DQotICAgIC8vIHNldHRpbmcgdGhlIHZvaWNlIGZvciB0aGUgZmlyc3Qg
dGltZSB3aWxsIGNhdXNlIHRoZSBmaXJzdCBzcGVlY2hEb25lIGNhbGxiYWNrIHRvIHJlcG9ydCBp
dCB3YXMgdW5zdWNjZXNzZnVsLg0KLSAgICBCT09MIHVwZGF0ZVBpdGNoID0gTk87DQotICAgIGlm
ICghW1ttX3N5bnRoZXNpemVyIHZvaWNlXSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkldKSB7DQot
ICAgICAgICBbbV9zeW50aGVzaXplciBzZXRWb2ljZTp2b2ljZVVSSV07DQotICAgICAgICAvLyBS
ZXNldCB0aGUgYmFzZSBwaXRjaCB3aGVuZXZlciB3ZSBjaGFuZ2Ugdm9pY2VzLg0KLSAgICAgICAg
dXBkYXRlUGl0Y2ggPSBZRVM7DQotICAgIH0NCi0NCi0gICAgaWYgKG1fYmFzZVBpdGNoID09IDAg
fHwgdXBkYXRlUGl0Y2gpDQotICAgICAgICBbc2VsZiB1cGRhdGVCYXNlUGl0Y2hGb3JTeW50aGVz
aXplcl07DQotDQotICAgIFttX3N5bnRoZXNpemVyIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVy
V2l0aEZsb2F0OltzZWxmIGNvbnZlcnRQaXRjaFRvTlNTcGVlY2hWYWx1ZTp1dHRlcmFuY2UtPnBp
dGNoKCldXSBmb3JQcm9wZXJ0eTpOU1NwZWVjaFBpdGNoQmFzZVByb3BlcnR5IGVycm9yOm5pbF07
DQotICAgIFttX3N5bnRoZXNpemVyIHNldFJhdGU6W3NlbGYgY29udmVydFJhdGVUb1dQTTp1dHRl
cmFuY2UtPnJhdGUoKV1dOw0KLSAgICBbbV9zeW50aGVzaXplciBzZXRWb2x1bWU6dXR0ZXJhbmNl
LT52b2x1bWUoKV07DQotDQotICAgIG1fdXR0ZXJhbmNlID0gdXR0ZXJhbmNlOw0KLSAgICBbbV9z
eW50aGVzaXplciBzdGFydFNwZWFraW5nU3RyaW5nOnV0dGVyYW5jZS0+dGV4dCgpXTsNCi0gICAg
bV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcoKm1fdXR0ZXJh
bmNlKTsNCi19DQotDQotLSAodm9pZClwYXVzZQ0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkN
Ci0gICAgICAgIHJldHVybjsNCi0NCi0gICAgW21fc3ludGhlc2l6ZXIgcGF1c2VTcGVha2luZ0F0
Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlhdGVCb3VuZGFyeV07DQotICAgIG1fc3ludGhlc2l6ZXJP
YmplY3QtPmNsaWVudCgpLT5kaWRQYXVzZVNwZWFraW5nKCptX3V0dGVyYW5jZSk7DQotfQ0KLQ0K
LS0gKHZvaWQpcmVzdW1lDQotew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0KLSAgICAgICAgcmV0
dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBjb250aW51ZVNwZWFraW5nXTsNCi0gICAgbV9z
eW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFJlc3VtZVNwZWFraW5nKCptX3V0dGVyYW5j
ZSk7DQotfQ0KLQ0KLS0gKHZvaWQpY2FuY2VsDQotew0KLSAgICBpZiAoIW1fdXR0ZXJhbmNlKQ0K
LSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBbbV9zeW50aGVzaXplciBzdG9wU3BlYWtpbmdBdEJv
dW5kYXJ5Ok5TU3BlZWNoSW1tZWRpYXRlQm91bmRhcnldOw0KLSAgICBtX3N5bnRoZXNpemVyT2Jq
ZWN0LT5jbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVkKCptX3V0dGVyYW5jZSk7DQotICAg
IG1fdXR0ZXJhbmNlID0gMDsNCi19DQotDQotLSAodm9pZClpbnZhbGlkYXRlDQotew0KLSAgICBt
X3V0dGVyYW5jZSA9IDA7DQotICAgIFttX3N5bnRoZXNpemVyIHNldERlbGVnYXRlOm5pbF07DQot
ICAgIFttX3N5bnRoZXNpemVyIHN0b3BTcGVha2luZ0F0Qm91bmRhcnk6TlNTcGVlY2hJbW1lZGlh
dGVCb3VuZGFyeV07DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KE5TU3BlZWNo
U3ludGhlc2l6ZXIgKilzZW5kZXIgZGlkRmluaXNoU3BlYWtpbmc6KEJPT0wpZmluaXNoZWRTcGVh
a2luZw0KLXsNCi0gICAgaWYgKCFtX3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0g
ICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7DQotDQotICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5j
ZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtp
bmcgam9iIGltbWVkaWF0ZWx5Lg0KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSogdXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7DQotICAgIG1fdXR0ZXJhbmNlID0g
MDsNCi0NCi0gICAgaWYgKGZpbmlzaGVkU3BlYWtpbmcpDQotICAgICAgICBtX3N5bnRoZXNpemVy
T2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcoKnV0dGVyYW5jZSk7DQotICAgIGVs
c2UNCi0gICAgICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5zcGVha2luZ0Vycm9y
T2NjdXJyZWQoKnV0dGVyYW5jZSk7DQotfQ0KLQ0KLS0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6
KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgd2lsbFNwZWFrV29yZDooTlNSYW5nZSljaGFy
YWN0ZXJSYW5nZSBvZlN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcNCi17DQotICAgIFVOVVNFRF9Q
QVJBTShzZW5kZXIpOw0KLSAgICBVTlVTRURfUEFSQU0oc3RyaW5nKTsNCi0NCi0gICAgaWYgKCFt
X3V0dGVyYW5jZSkNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgLy8gTWFjIHBsYXRmb3JtIG9u
bHkgc3VwcG9ydHMgd29yZCBib3VuZGFyaWVzLg0KLSAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5j
bGllbnQoKS0+Ym91bmRhcnlFdmVudE9jY3VycmVkKCptX3V0dGVyYW5jZSwgV2ViQ29yZTo6U3Bl
ZWNoQm91bmRhcnk6OlNwZWVjaFdvcmRCb3VuZGFyeSwgY2hhcmFjdGVyUmFuZ2UubG9jYXRpb24p
Ow0KLX0NCi0NCi1AZW5kDQotDQotbmFtZXNwYWNlIFdlYkNvcmUgew0KLQ0KLVBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplckNsaWVudCogY2xpZW50KQ0KLSAgICA6IG1fc3BlZWNoU3ludGhlc2l6ZXJDbGll
bnQoY2xpZW50KQ0KLXsNCi19DQotDQotUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6flBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXIoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVy
IGludmFsaWRhdGVdOw0KLX0NCi0NCi1zdGF0aWMgUmV0YWluUHRyPENGQXJyYXlSZWY+IHNwZWVj
aFN5bnRoZXNpc0dldFZvaWNlSWRlbnRpZmllcnMoKQ0KLXsNCi0gICAgLy8gR2V0IGFsbCB0aGUg
dm9pY2VzIG9mZmVyZWQgYnkgVFRTLg0KLSAgICAvLyBCeSBkZWZhdWx0IHNwZWVjaCBvbmx5IHJl
dHVybnMgInByZW1pdW0iIHZvaWNlcywgd2hpY2ggZG9lcyBub3QgaW5jbHVkZSBhbGwgdGhlDQot
ICAgIC8vIGludGVybmF0aW9uYWwgdm9pY2VzLiBUaGlzIGFsbG93cyB1cyB0byBvZmZlciBzcGVl
Y2ggc3ludGhlc2lzIGZvciBhbGwgc3VwcG9ydGVkIGxhbmd1YWdlcy4NCi0gICAgcmV0dXJuIGFk
b3B0Q0YoQ29weVNwZWVjaFN5bnRoZXNpc1ZvaWNlc0Zvck1vZGUoKF9fYnJpZGdlIENGQXJyYXlS
ZWYpQFsgQCJWb2ljZUdyb3VwRGVmYXVsdCIsIEAiVm9pY2VHcm91cENvbXBhY3QiIF0pKTsNCi19
DQotDQotc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc3BlZWNoU3ludGhlc2lzR2V0RGVm
YXVsdFZvaWNlSWRlbnRpZmllckZvckxvY2FsZShOU0xvY2FsZSAqdXNlckxvY2FsZSkNCi17DQot
ICAgIGlmICghdXNlckxvY2FsZSkNCi0gICAgICAgIHJldHVybiBuaWw7DQotDQotI2lmIEhBVkUo
U1BFRUNIU1lOVEhFU0lTX01PTlRFUkVZX1NQSSkNCi0gICAgcmV0dXJuIGFkb3B0Q0YoQ29weUlk
ZW50aWZpZXJTdHJpbmdGb3JQcmVmZXJyZWRWb2ljZUluTGlzdFdpdGhMb2NhbGUoc3BlZWNoU3lu
dGhlc2lzR2V0Vm9pY2VJZGVudGlmaWVycygpLmdldCgpLCAoX19icmlkZ2UgQ0ZMb2NhbGVSZWYp
dXNlckxvY2FsZSkpOw0KLSNlbHNlDQotICAgIHJldHVybiBHZXRJZGVudGlmaWVyU3RyaW5nRm9y
UHJlZmVycmVkVm9pY2VJbkxpc3RXaXRoTG9jYWxlKHNwZWVjaFN5bnRoZXNpc0dldFZvaWNlSWRl
bnRpZmllcnMoKS5nZXQoKSwgKF9fYnJpZGdlIENGTG9jYWxlUmVmKXVzZXJMb2NhbGUpOw0KLSNl
bmRpZg0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmluaXRpYWxpemVW
b2ljZUxpc3QoKQ0KLXsNCi0gICAgYXV0byBhdmFpbGFibGVWb2ljZXMgPSBzcGVlY2hTeW50aGVz
aXNHZXRWb2ljZUlkZW50aWZpZXJzKCk7DQotICAgIE5TVUludGVnZXIgY291bnQgPSBbKF9fYnJp
ZGdlIE5TQXJyYXkgKilhdmFpbGFibGVWb2ljZXMuZ2V0KCkgY291bnRdOw0KLSAgICBmb3IgKE5T
VUludGVnZXIgayA9IDA7IGsgPCBjb3VudDsgaysrKSB7DQotICAgICAgICBOU1N0cmluZyAqdm9p
Y2VOYW1lID0gWyhfX2JyaWRnZSBOU0FycmF5ICopYXZhaWxhYmxlVm9pY2VzLmdldCgpIG9iamVj
dEF0SW5kZXg6a107DQotICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBbTlNTcGVl
Y2hTeW50aGVzaXplciBhdHRyaWJ1dGVzRm9yVm9pY2U6dm9pY2VOYW1lXTsNCi0NCi0gICAgICAg
IE5TU3RyaW5nICp2b2ljZVVSSSA9IFthdHRyaWJ1dGVzIG9iamVjdEZvcktleTpOU1ZvaWNlSWRl
bnRpZmllcl07DQotICAgICAgICBOU1N0cmluZyAqbmFtZSA9IFthdHRyaWJ1dGVzIG9iamVjdEZv
cktleTpOU1ZvaWNlTmFtZV07DQotICAgICAgICBOU1N0cmluZyAqbGFuZ3VhZ2UgPSBbYXR0cmli
dXRlcyBvYmplY3RGb3JLZXk6TlNWb2ljZUxvY2FsZUlkZW50aWZpZXJdOw0KLSAgICAgICAgYXV0
byBkZWZhdWx0Vm9pY2VVUkkgPSBzcGVlY2hTeW50aGVzaXNHZXREZWZhdWx0Vm9pY2VJZGVudGlm
aWVyRm9yTG9jYWxlKGFkb3B0TlMoW1tOU0xvY2FsZSBhbGxvY10gaW5pdFdpdGhMb2NhbGVJZGVu
dGlmaWVyOmxhbmd1YWdlXSkuZ2V0KCkpOw0KLQ0KLSAgICAgICAgLy8gQ2hhbmdlIHRvIEJDUC00
NyBmb3JtYXQgYXMgZGVmaW5lZCBieSBzcGVjLg0KLSAgICAgICAgbGFuZ3VhZ2UgPSBbbGFuZ3Vh
Z2Ugc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNlc09mU3RyaW5nOkAiXyIgd2l0aFN0cmluZzpA
Ii0iXTsNCi0NCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0ID0gWyhfX2JyaWRnZSBOU1N0cmluZyAq
KWRlZmF1bHRWb2ljZVVSSS5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6dm9pY2VVUkldOw0KLQ0KLSAg
ICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U6OmNy
ZWF0ZSh2b2ljZVVSSSwgbmFtZSwgbGFuZ3VhZ2UsIHRydWUsIGlzRGVmYXVsdCkpOw0KLSAgICB9
DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6cGF1c2UoKQ0KLXsNCi0g
ICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyIHBhdXNlXTsNCi19DQotDQotdm9pZCBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hX
cmFwcGVyIHJlc3VtZV07DQotfQ0KLQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6
c3BlYWsoUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiYmIHV0dGVyYW5j
ZSkNCi17DQotICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIpDQotICAgICAgICBtX3Bs
YXRmb3JtU3BlZWNoV3JhcHBlciA9IGFkb3B0TlMoW1tXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVy
IGFsbG9jXSBpbml0V2l0aFNwZWVjaFN5bnRoZXNpemVyOnRoaXNdKTsNCi0NCi0gICAgW21fcGxh
dGZvcm1TcGVlY2hXcmFwcGVyIHNwZWFrVXR0ZXJhbmNlOnV0dGVyYW5jZS5nZXQoKV07DQotfQ0K
LQ0KLXZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y2FuY2VsKCkNCi17DQotICAgIFtt
X3BsYXRmb3JtU3BlZWNoV3JhcHBlciBjYW5jZWxdOw0KLX0NCi0NCi12b2lkIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXI6OnJlc2V0U3RhdGUoKQ0KLXsNCi0gICAgW21fcGxhdGZvcm1TcGVlY2hX
cmFwcGVyIGNhbmNlbF07DQotfQ0KLQ0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCi0NCi0jZW5k
aWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpICYmIFBMQVRGT1JNKE1BQykNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQpp
bmRleCA4MDFhNzUyYmZjNWYuLjI1Y2M1NzAyN2IxZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZw0KQEAgLTEsMyArMSwy
MiBAQA0KKzIwMjEtMTEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4N
CisNCisgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhlc2l6ZXIgcGxhdGZvcm0gdXNhZ2Ug
Zm9yIE1hYy9pT1MNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE4OTUNCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDM3MjQ3OT4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgQ3JlYXRlIGEgbmV3
IG1lc3NhZ2UgZm9yIHJlc2V0dGluZyBzcGVlY2ggc3ludGhlc2lzIHN0YXRlIHdoZW4gdGhlIERP
TVdpbmRvdyBjaGFuZ2VzDQorICAgICAgICBidXQgdGhlIFBhZ2UgKGFuZCBpdHMgcmVmZXJlbmNl
ZCBzcGVlY2ggc3ludGhlc2lzKSBzdGF5cyB0aGUgc2FtZS4NCisNCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6DQorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNw
ZWVjaFN5bnRoZXNpc1Jlc2V0U3RhdGUpOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6DQorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46DQor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmNwcDoNCisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFN5bnRoZXNpc0NsaWVudDo6cmVz
ZXRTdGF0ZSk6DQorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNo
U3ludGhlc2lzQ2xpZW50Lmg6DQorDQogMjAyMS0xMS0yMyAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9s
bXN0ZWFkQHNvbnkuY29tPg0KIA0KICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIG1p
ZCBOb3ZlbWJlciAyMDIxIGVkaXRpb24NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcA0KaW5kZXggZjZhYjgwOWRjOGM0Li40NDk1NzA5YjVmMjUgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwDQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwDQpAQCAtMTA1MTUsNiArMTA1MTUsMTEgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNwZWVjaFN5bnRoZXNpc0NhbmNlbCgpDQogICAgIHNwZWVjaFN5
bnRoZXNpc0RhdGEoKS5zeW50aGVzaXplci0+Y2FuY2VsKCk7DQogfQ0KIA0KK3ZvaWQgV2ViUGFn
ZVByb3h5OjpzcGVlY2hTeW50aGVzaXNSZXNldFN0YXRlKCkNCit7DQorICAgIHNwZWVjaFN5bnRo
ZXNpc0RhdGEoKS5zeW50aGVzaXplci0+cmVzZXRTdGF0ZSgpOw0KK30NCisNCiB2b2lkIFdlYlBh
Z2VQcm94eTo6c3BlZWNoU3ludGhlc2lzUGF1c2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQ0KIHsNCiAgICAgc3BlZWNoU3ludGhlc2lzRGF0YSgpLnNwZWFr
aW5nUGF1c2VkQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsN
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oDQppbmRleCA1M2JiNmQ1ZGQxMGMu
LmIyZjU2NWZmMDU0MyAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaA0K
QEAgLTE4MTIsNiArMTgxMiw3IEBAIHB1YmxpYzoNCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXND
YW5jZWwoKTsNCiAgICAgdm9pZCBzcGVlY2hTeW50aGVzaXNQYXVzZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOw0KICAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1Jlc3VtZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOw0KKyAgICB2b2lkIHNwZWVjaFN5bnRoZXNpc1Jlc2V0U3RhdGUo
KTsNCiAjZW5kaWYNCiANCiAgICAgdm9pZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBT
dHJpbmcmLCBXVEZMb2dDaGFubmVsU3RhdGUsIFdURkxvZ0xldmVsKTsNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4NCmluZGV4IDYyYWViNTg3
ZjdjOC4uMDg3NzhhZTY1NDQ4IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluDQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4NCkBAIC01NDQsNiArNTQ0LDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsNCiAgICAgU3BlZWNoU3ludGhlc2lzQ2FuY2VsKCkNCiAgICAgU3BlZWNo
U3ludGhlc2lzUGF1c2UoKSAtPiAoKSBBc3luYw0KICAgICBTcGVlY2hTeW50aGVzaXNSZXN1bWUo
KSAtPiAoKSBBc3luYw0KKyAgICBTcGVlY2hTeW50aGVzaXNSZXNldFN0YXRlKCkNCiAjZW5kaWYN
CiANCiAjaWYgRU5BQkxFKFVJX1BST0NFU1NfUERGX0hVRCkNCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hT
eW50aGVzaXNDbGllbnQuY3BwDQppbmRleCA5YTE5MTZhYTg2ZDkuLmM0ZDBkY2MwM2Q1ZCAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuY3BwDQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcA0KQEAgLTU1LDYgKzU1LDEx
IEBAIFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0NsaWVudE9ic2VydmVyKiBXZWJTcGVlY2hTeW50
aGVzaXNDbGllbnQ6OmNvcmVQYWdlT2JzZXJ2DQogICAgIHJldHVybiBudWxscHRyOw0KIH0NCiAN
Cit2b2lkIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudDo6cmVzZXRTdGF0ZSgpDQorew0KKyAgICBt
X3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTcGVlY2hTeW50aGVzaXNSZXNldFN0
YXRlKCkpOw0KK30NCisNCiB2b2lkIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudDo6c3BlYWsoUmVm
UHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiB1dHRlcmFuY2Up
DQogew0KICAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gc3RhcnRlZENvbXBsZXRp
b25IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKCkgbXV0YWJs
ZSB7DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oDQppbmRleCA3YmQ4NzU5MDVh
NjUuLjk2ZDhlMjNhOWExOSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaA0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5o
DQpAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6DQogcHJpdmF0ZToNCiAgICAgdm9pZCBzZXRPYnNl
cnZlcihXZWFrUHRyPFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0NsaWVudE9ic2VydmVyPiBvYnNl
cnZlcikgb3ZlcnJpZGUgeyBtX29ic2VydmVyID0gb2JzZXJ2ZXI7IH0NCiAgICAgV2Vha1B0cjxX
ZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlcj4gb2JzZXJ2ZXIoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX29ic2VydmVyOyB9DQorICAgIHZvaWQgcmVzZXRTdGF0ZSgpIG92
ZXJyaWRlOw0KIA0KICAgICBXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXNDbGllbnRPYnNlcnZlciog
Y29yZVBhZ2VPYnNlcnZlcigpIGNvbnN0Ow0KICAgICANCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>