<?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>188828</bug_id>
          
          <creation_ts>2018-08-21 16:41:00 -0700</creation_ts>
          <short_desc>Spelling dots do not scale with page on iOS; share spelling dot painting code between Mac and iOS</short_desc>
          <delta_ts>2020-01-16 10:07:45 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=188762</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=188861</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1452397</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 16:41:00 -0700</bug_when>
    <thetext>The spelling dots on Mac and iOS have the same visual appearance up to color. As a step towards having the spelling dots in WebKit on iOS more closely match the spelling dots on iOS we should share the same painting code used in WebKit on Mac.

A side benefit of sharing more code between Mac and iOS is that this will fix rendering artifacts when painting spelling dots on iOS when the page is zoomed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452398</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 16:41:42 -0700</bug_when>
    <thetext>Another benefit is that we get to remove a lot of code :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452416</commentid>
    <comment_count>2</comment_count>
      <attachid>347731</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 16:59:04 -0700</bug_when>
    <thetext>Created attachment 347731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452419</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 17:01:29 -0700</bug_when>
    <thetext>An example of a rendering artifact when painting the bitmap dots on iOS can be see in attachment #347552 (bug #188762).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452422</commentid>
    <comment_count>4</comment_count>
      <attachid>347733</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 17:03:40 -0700</bug_when>
    <thetext>Created attachment 347733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452423</commentid>
    <comment_count>5</comment_count>
      <attachid>347731</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-21 17:04:03 -0700</bug_when>
    <thetext>Comment on attachment 347731
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm:220
&gt; +    // Cocoa platform use the theme to paint the platform document markers.

Uses the theme?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452425</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 17:06:10 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Comment on attachment 347731 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=347731&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cocoa/GraphicsContextCocoa.mm:220
&gt; &gt; +    // Cocoa platform use the theme to paint the platform document markers.
&gt; 
&gt; Uses the theme?

Maybe &quot;Cocoa platforms use RenderTheme::drawLineForDocumentMarker() to paint the platform document markers.&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452465</commentid>
    <comment_count>7</comment_count>
      <attachid>347746</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 18:00:45 -0700</bug_when>
    <thetext>Created attachment 347746
Patch

Updated code comment per comment 6. Removed more codez.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452665</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-22 09:32:25 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #0)
&gt; A side benefit of sharing more code between Mac and iOS is that this will
&gt; fix rendering artifacts when painting spelling dots on iOS when the page is
&gt; zoomed.

This issue is tracked in &lt;rdar://problem/15966403&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452669</commentid>
    <comment_count>9</comment_count>
      <attachid>347809</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-22 09:40:22 -0700</bug_when>
    <thetext>Created attachment 347809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453252</commentid>
    <comment_count>10</comment_count>
      <attachid>347809</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-23 15:25:40 -0700</bug_when>
    <thetext>Comment on attachment 347809
Patch

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

&gt; Source/WebCore/rendering/RenderThemeCocoa.mm:29
&gt;  #if ENABLE(APPLE_PAY)

Er, why are all these #includes under ENABLE(APPLE_PAY)? I think you&apos;ll have to move out those you need for drawLineForDocumentMarker().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453294</commentid>
    <comment_count>11</comment_count>
      <attachid>347809</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-23 16:20:03 -0700</bug_when>
    <thetext>Comment on attachment 347809
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderThemeCocoa.mm:29
&gt;&gt;  #if ENABLE(APPLE_PAY)
&gt; 
&gt; Er, why are all these #includes under ENABLE(APPLE_PAY)? I think you&apos;ll have to move out those you need for drawLineForDocumentMarker().

Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453314</commentid>
    <comment_count>12</comment_count>
      <attachid>347972</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-23 16:47:24 -0700</bug_when>
    <thetext>Created attachment 347972
For landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453945</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-27 10:06:22 -0700</bug_when>
    <thetext>Committed r235378: &lt;https://trac.webkit.org/changeset/235378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453946</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-27 10:07:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/43758062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607515</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-01-16 10:07:45 -0800</bug_when>
    <thetext>*** Bug 135666 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347731</attachid>
            <date>2018-08-21 16:59:04 -0700</date>
            <delta_ts>2018-08-21 17:04:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188828-20180821165903.patch</filename>
            <type>text/plain</type>
            <size>56370</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZiMjg4MDFmNGY3Nzc3
Mjk5ZjFiNTFiYTE1Y2VkNzNhYzFiYjczZi4uZjI3MWNhMjhlMzg1NGRkMzBhZWIzNGIzOWM3NDY1
NmFhZjA1ZTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTA4LTIxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBTaGFyZSBzcGVsbGluZyBk
b3QgcGFpbnRpbmcgY29kZSBiZXR3ZWVuIE1hYyBhbmQgaU9TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg4MjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbG9vayBvZiB0aGUgc3BlbGxpbmcgZG90
cyBvbiBNYWMgYW5kIGlPUyBhcmUgaWRlbnRpY2FsIHVwIHRvIGNvbG9yLiBUb3dhcmRzIG1ha2lu
ZyB0aGUKKyAgICAgICAgc3BlbGxpbmcgZG90cyBpbiBXZWJLaXQgb24gaU9TIG1vcmUgY2xvc2Vs
eSBtYXRjaCB0aGUgbG9vayBvZiB0aGUgc3BlbGxpbmcgZG90cyBpbiBVSUtpdC0KKyAgICAgICAg
YXBwcywgc3RhbmRhcmRpemUgb24gdXNpbmcgdGhlIHNhbWUgcGFpbnRpbmcgY29kZSBmb3IgYm90
aCBNYWMgYW5kIGlPUy4KKworICAgICAgICBDdXJyZW50bHkgaU9TIHVzZXMgYml0bWFwcyB0byBy
ZW5kZXIgdGhlIHNwZWxsaW5nIGRvdHMgYW5kIGRvZXMgbm90IGFjY291bnQgZm9yIHVzZXIvQ1NT
CisgICAgICAgIHpvb21pbmcuIEFzIGEgcmVzdWx0LCB0aGUgc3BlbGxpbmcgZG90cyBvbiBpT1Mg
cmVuZGVyIHdpdGggYXJ0aWZhY3RzIChlLmcuIHRydW5jYXRlZCBkb3RzKS4KKyAgICAgICAgQSBz
aWRlIGJlbmVmaXQgb2YgaGF2aW5nIGlPUyBzaGFyZSB0aGUgc2FtZSBwYWludGluZyBjb2RlIGFz
IE1hYyBpcyB0aGF0IGlPUyB3aWxsIG5vdyBwYWludAorICAgICAgICB0aGUgZG90cyBwcm9ncmFt
bWF0aWNhbGx5IGFuZCB3ZSBhdm9pZCBib3RoIHRoZSBuZWVkIHRvIHVzZSBiaXRtYXBzIGFuZCBm
aXggdGhlIGJ1Z3MgaW4KKyAgICAgICAgdGhlIHBhaW50aW5nIG9mIHRoZSBiaXRtYXAgZG90cyB3
aXRoIHJlc3BlY3QgdG8gem9vbWluZy4KKworICAgICAgICAqIFJlc291cmNlcy9EaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJj
ZXMvRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmc6IFJlbW92ZWQuCisg
ICAgICAgICogUmVzb3VyY2VzL1NwZWxsaW5nRG90LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBS
ZXNvdXJjZXMvU3BlbGxpbmdEb3RAMngucG5nOiBSZW1vdmVkLgorICAgICAgICAqIFJlc291cmNl
cy9TcGVsbGluZ0RvdEAzeC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURv
dFBhdHRlcm4pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGlj
cy5tbToKKyAgICAgICAgKFdLUmVjdEZpbGwpOiBJbmNvcnBvcmF0ZWQgdGhlIGxvZ2ljIGZyb20g
X0ZpbGxSZWN0VXNpbmdPcGVyYXRpb24oKS4KKyAgICAgICAgKF9GaWxsUmVjdFVzaW5nT3BlcmF0
aW9uKTogRGVsZXRlZDsgbW92ZWQgdGhlIGxvZ2ljIGludG8gV0tSZWN0RmlsbCgpIHNpbmNlIFdL
UmVjdEZpbGwoKQorICAgICAgICBpcyBub3cgdGhlIG9ubHkgY2FsbGVyIG9mIHRoaXMgZnVuY3Rp
b24uCisgICAgICAgIChXS1JlY3RGaWxsVXNpbmdPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAoaW1hZ2VSZXNvdXJjZVBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV0tHcmFwaGljc0NyZWF0
ZUltYWdlRnJvbUJ1bmRsZVdpdGhOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdLRHJhd1BhdHRl
cm5CaXRtYXApOiBEZWxldGVkLgorICAgICAgICAoV0tSZWxlYXNlUGF0dGVybkJpdG1hcCk6IERl
bGV0ZWQuCisgICAgICAgIChXS1NldFBhdHRlcm4pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy93YWsvV0tHcmFwaGljc0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJv
eDo6cGFpbnRQbGF0Zm9ybURvY3VtZW50TWFya2VyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDb2NvYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1t
OgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGb3JTdHlsZSk6IE1vdmVkIGZyb20gUmVuZGVyVGhl
bWVNYWMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNvY29hOjpkcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKTogTW92ZWQgZnJvbSBSZW5kZXJUaGVtZU1hYy4gSSByZW5hbWVkCisgICAg
ICAgIHRoZSBsb2NhbCB2YXJpYWJsZSBjdHggdG8gY29udGV4dCBhbmQgZml4ZWQgYSB0eXBlIGlu
IGEgY29tbWVudCB3aGlsZSBtb3ZpbmcgdGhpcyBjb2RlLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRm9yU3R5bGUpOiBEZWxldGVkOyBtb3ZlZCB0byBjbGFz
cyBSZW5kZXJUaGVtZUNvY29hLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkOyBtb3ZlZCB0byBjbGFzcyBSZW5kZXJU
aGVtZUNvY29hLgorCiAyMDE4LTA4LTE3ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbRGF0YWxpc3RdW2lPU10gRGlzcGxheSBzdWdnZXN0aW9ucyBmb3Ig
aW5wdXRbdHlwZT1jb2xvcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9E
aWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jl
c291cmNlcy9EaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDJlMTBmOGNhNjY3MDIwZGRkYjhiZTg0Zjk2ODQ5NTE3NDM4
NTA2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxODMKemNtZUFTQE4/KG9sSHlg
dVZCcSFpYTB2cF5FSWBjNiEzSEZeZHw3dTROTzJaO0w+NG5KYTBgUGxCZzNwWTU8byRQCnpXUkQ8
VTI4SnFDMjhNPWEyOE4maWYlSG9UaEVmOXRoRjF2OzN8MkUzN3t2MUAjVUZKOHM8cmlXYVNXLXIj
ZDZTKQp6Pnd0bSkhQDtaayhHZ2xJdCEyfnA9YCVWYCohK1JMe00/VDFrJkhxQ15GNis4KClseEFA
aWJHemVDT1hjUHMhWTMKYWU4PUYoQnp9X0ZaZX1qZkFPPXJZS2JMaCoyfjdaYE1LdWlvCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRl
cm5hdGl2ZXNEb3RAMngucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL0RpY3RhdGlvblBo
cmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RAMngucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmZjM2OWZiNDg2OWRmZjk5MDYyYmQ2MDMyY2VkMjk5MDA4YTI1N2JmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDI2Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjk2LSMq
ITNIRyV2RUtnO3EmTiNhQjh3UnF4UD9LT2t6dip4MzgwYHQKenZQWTBGMTRFVDYxNEJiSTFIO2Ul
Sz44JkVMI1k3KyE+YUBhMkNFcWk0QzQ4ZDsqWXVrKWxUJHVhU1ctcjwjV29LCno+eVUjNCFeMjRQ
JGpKKkA9YmdURSVJayF4aTBqMl9qK0hxJmRxYmApTlZwZXlEMVJkdHBVP018ciRjK1R6T2d6agp6
YmxgYHx6Vm41NGk8dioldnV1Q2Y5VTh9UXB5RWlIbF9QVURnVEFrLVV3Kig8SntRRmpUfCo2YXhw
S3dSMypPN0YKekBWZGF8ei1XKz5aRTNwbkx3JlVPQSM7N004YDhTVkc5bm1RK0tNZWdacDs3UlZY
ISlCPEd8VD5HODU9SDIyV1ElCkptdnY0Rk8jdEBPU2lBckwKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9SZXNvdXJjZXMvU3BlbGxpbmdEb3QucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3Vy
Y2VzL1NwZWxsaW5nRG90LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYxYTli
Nzg4ZDQ0MDYyODkyYzVkMzc2MjY4Njg3NGVmMDcxZjUyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKbGl0ZXJhbCAxOTUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5FSWBjNiEzLXB1d2NAXmox
a3hSUzlUXnl8LU1IYyhWRmN0JG1iZ1pnCnoxbX54ZmxxVkxZR0J+RT5DIzVRUTx8ZH02MkJqdlpS
Mkg2MHdFLSVVNCk2KGF7ZVNpOXp0eVklaEtLKn1wWVlHWQp6O2FgOU1Vd1FkfDtTdkE7fDJLNEZ5
JGUqdlNyWChJNENJMFZMJEg1XjVYYl5nN3Nycl9UUypCQ0RHdzQ3a2BrWE0KZ0IlfiVrVzhnNGdW
NjxqMTRPX0Foc0RePlQpNzgmcW9sYDsrMERjb2hvJlcjPAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdEAyeC5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9SZXNv
dXJjZXMvU3BlbGxpbmdEb3RAMngucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
YThlMzFjMmRhYTU4M2UwNDM1YTUzYTRiYzFiZTM1M2IxMzUwZWY3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpsaXRlcmFsIDI1Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjk2LSMqITNIRyV2
RUtnO3EmTiNhQjh3UnF4UD9LT2t6dip4MzgwYHQKenZQWTBGMTRFVDYxNEJiSTFIJV59LUV4dEVB
dmQwWjtZQUp1Z0gxT0JnTEZqbWJNXnxMK0JRIVkkQj5GIUEqVktTCnpIOTFIZV8qbm50P240RERp
KGdUR3pLIX5jQkNkUGdBNiQ4NHtqI0x7Z0txbX0mMShmNlV1TV8wPVU8T31fUzI2ZQp6b25jTGA7
V083elJ0Q3Fmb210Sl84NzhFTGNSa3tXTnFYXkg+VXFNZkIjJlQ/KF5kUzM4T3xOdGJWUHdrYWY0
dlUKentoczh7OyoqeCNaOHFlO2NKPEw7JklYKFIzUHJhTTx1bUFQKXhHZzNeeHM+Y2l4QG16e2Fu
XkxCe1RzNW98YXg1CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL1NwZWxs
aW5nRG90QDN4LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdEAzeC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxYjdmN2FmZTc4ODk1MzBjYTdjODcz
Nzg1NDdjMzRlMGFhMGIwMmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjcwCnpj
bVYrcDByQ0VjUCk8aDszS3xMazAwMGUxTkpMVHEwMDBhQzAwMFJIMV5AczYyRHJeczAwMDBQYlZY
UW5RKlVOOwp6Y1ZUajYwNn1ETFZyM3ZuWkRENitRZXxPZWQyentRSk9CVXl1dGBLZ1JDd0JTaytC
VmZGYzN4V3F6c1plcjh7UXUKejI0TjcyKVI5O09IdC1yUXNvNE1sbEgxR0FhZ09hR1U7ZFZMe19s
VztXZiV5JCEjKFVfMlMrJS02VEgkbVFyNkFGCnpafT4/P28lc1IzNiM0LXZefjgqQD1wdGdXIX1v
fGZGVkBoMl5ZQjs1Qm5VSEtqRiFjPnpfdlRQen5hSXhwcXJ+Kwp6Nn5Na2xUeX58elMxPjw4SUpV
clgyS35VJnYyKyhETEpPb2MqKS19WVd6OUMpV357ND9adSRFa0R0IWJQMEd6QmsKVTFNPSt4Qj4o
XmIwNypxb002TjwkZzAlbHtPI2xEQAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZjRiMzIyN2IzZGViNmE3NTY3NjFlMGZmOTQ2
YWY1MDBmNTEyNmU5Li5iNWJkNDJhNDliMWM5ZWMxMWMxNDM4MzM4MGFjYjZlNmFjZjZhYjFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC01Nyw3ICs1Nyw2IEBACiAJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENv
bnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDAxRDNDRjdGMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCAqLzsg
fTsKIAkJMDFEM0NGODYxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAxRDNDRjgwMTRC
RDBBMzAwMEZFOTk3MCAvKiBXZWJHTFNoYXJlZE9iamVjdC5jcHAgKi87IH07CiAJCTAxRDNDRjg3
MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTFNoYXJlZE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDFEM0NGODExNEJEMEEzMDAwRkU5OTcwIC8q
IFdlYkdMU2hhcmVkT2JqZWN0LmggKi87IH07Ci0JCTAxRTZDMkU0MTE5NEIyODIwMDUwODIxQyAv
KiBTcGVsbGluZ0RvdEAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDAxRTZDMkUzMTE5NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5w
bmcgKi87IH07CiAJCTA1NjJGOTYxMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNTYyRjk2MDE1
NzNGODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA1RkQ2OUUwMTI4NDVENDMwMEIyQkVCMyAvKiBE
T01UaW1lU3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA1RkQ2OURGMTI4NDVENDMwMEIyQkVCMyAvKiBET01UaW1lU3RhbXAuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjAyN0NBRDBCMUNCRkMw
MDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNjAyN0NBQzBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1l
bnVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTYzMCw3ICs2MjksNiBAQAogCQkxQzEyQUMyQjFFRTc3OEFFMDA3OUUwQTAgLyogRm9udEZh
bWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUMxMkFDMjkxRUU3NzhBRTAwNzlFMEEwIC8qIEZvbnRGYW1pbHlT
cGVjaWZpY2F0aW9uQ29yZVRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxQzE4REE1OTE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBhaW50ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMThEQTU3
MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oICovOyB9OwogCQkxQzIxRTU3RDE4M0VE
MUZGMDAxQzI4OUQgLyogSU9TdXJmYWNlUG9vbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyMUU1N0IxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFj
ZVBvb2wuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQkxQzI0MTdCQTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI0MTdCOTE5OTJDMDQx
MDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nICovOyB9OwogCQkxQzI0RUVBNTFDNzI5Q0U0
MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDMjRFRUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5o
ICovOyB9OwogCQkxQzI0RUVBOTFDNzJBN0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyNEVFQTcxQzcy
QTdCNDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCAqLzsgfTsKIAkJMUM2NjI2MTExQzZFN0NB
NjAwQUI1MjdDIC8qIEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzY2MjYwRjFDNkU3Q0E2MDBBQjUyN0MgLyogRm9udEZhY2UuaCAqLzsg
fTsKQEAgLTM4NjMsNyArMzg2MSw2IEBACiAJCUJFODhFMERGMTcxNUQyQTIwMDY1OEQ5OCAvKiBW
aWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCRTg4RTBEMzE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJFODhFMEUxMTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCRTg4RTBENTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xp
c3QuY3BwICovOyB9OwogCQlCRTg4RTBFMjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFODhF
MEQ2MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5oICovOyB9OwotCQlCRThDNzUz
MTEwNjgxMzI0MDAxRTkzRjUgLyogU3BlbGxpbmdEb3QucG5nIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRThDNzUzMDEwNjgxMzI0MDAxRTkzRjUgLyog
U3BlbGxpbmdEb3QucG5nICovOyB9OwogCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNB
dWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCRThFRjAzRjE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggKi87IH07CiAJCUJF
OEVGMDQ1MTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRThFRjA0MTE3MUM4RkY5MDA5QjQ4
QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oICovOyB9OwogCQlCRThFRjA0QjE3MUM5MDE0MDA5QjQ4
QzMgLyogSlNWaWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCRThFRjA0NzE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmggKi87
IH07CkBAIC00MTI0LDggKzQxMjEsNiBAQAogCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyog
RnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQwMDBFQkExMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0
YXRlTWFjaGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUQwMDBFRDI4MTFDMUI5Q0QwMEM0NzcyNiAvKiBTdWJmcmFtZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDAwMEVEMjYxMUMxQjlD
RDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDAxQTI3QUUxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNl
U3BsaXRTdHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQwMUEyN0FDMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRDAyQjY0QjIxNDA4
OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDJCNjRCMDE0
MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdC5wbmcg
Ki87IH07Ci0JCUQwMkI2NEIzMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRo
QWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRDAyQjY0QjExNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFz
ZVdpdGhBbHRlcm5hdGl2ZXNEb3RAMngucG5nICovOyB9OwogCQlEMDVDRUQyQTBBNDBCQjJDMDBD
NUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0Qmxv
Y2tDb21tYW5kLmggKi87IH07CiAJCUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVG
b3JtYXRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMDZDMEQ4RDBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5oICov
OyB9OwogCQlEMDdERUFCQTBBMzY1NTRBMDBDQTMwRjggLyogSW5zZXJ0TGlzdENvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwN0RFQUI4MEEz
NjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oICovOyB9OwpAQCAtNDc4NiwxOSAr
NDc4MSwxOCBAQAogCQlFNEU5QjExOTE4MTA5MTZGMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91
dFJlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNEU5QjExODE4MTA5MTZGMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmgg
Ki87IH07CiAJCUU0RTlCMTFEMTgxNDU2OUMwMDNBQ0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0RnVu
Y3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEU5QjExQzE4MTQ1NjlDMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5oICov
OyB9OwogCQlFNEY5RUVGMzE1NkRBMDA3MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEY5RUVGMTE1
NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTU5REQ0QjgyMTA5ODI4NzAwM0M4QjQ3
IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJy
b3cucG5nICovOyB9OwogCQlFNTE2Njk5MTIwRkY5OTE4MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFy
cm93QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgKi87
IH07CiAJCUU1MTc2NzAzMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZv
cm1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTUxNzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTUy
Q0Y1NEQyMEEyNjhBQzAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTRDMjBBMjY4
QUMwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTUyQ0Y1NEYyMEEzNUEyODAwREFE
QTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1NEUyMEEzNUEyODAwREFEQTI3IC8qIERhdGFM
aXN0U3VnZ2VzdGlvblBpY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUU1OEI0NUJBMjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRv
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU1OEI0NUI4MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCAqLzsg
fTsKIAkJRTU4QjQ1QkIyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNThCNDVC
OTIwQUQwN0REMDA5OTEwMjUgLyogRGF0YUxpc3RCdXR0b25FbGVtZW50LmNwcCAqLzsgfTsKKwkJ
RTU5REQ0QjgyMTA5ODI4NzAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1OURENEI3MjEwOTgyODUw
MDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cucG5nICovOyB9OwogCQlFNUJBN0Q2MzE1MTQzN0NB
MDBGRTFFM0YgLyogTGVuZ3RoRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVuZ3RoRnVu
Y3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRUJGNTEyMUMxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFBMTY5NjQ5
NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgKi87IH07CiAJCUVCRjUxMjFEMTY5
NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJGNTEyMUIxNjk2NDk2QzAwNTZCRDI1IC8qIEpT
VHlwZUNvbnZlcnNpb25zLmggKi87IH07CiAJCUVDQTY4MEM3MUU2NzcyNDUwMDczMUQyMCAvKiBT
dHJpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEVDQTY4MEM2MUU2NzcyNDUwMDczMUQyMCAvKiBTdHJpbmdVdGlsaXRpZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFQ0NEQjg4MTFF
NEI4QzU5MDBBMUFFQTYgLyogV0tDb250ZW50T2JzZXJ2YXRpb25JbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNDREI4ODAxRTRCOEM1OTAw
QTFBRUE2IC8qIFdLQ29udGVudE9ic2VydmF0aW9uSW50ZXJuYWwuaCAqLzsgfTsKLQkJRUNDREI4
ODcxRTRCQjYzRjAwQTFBRUE2IC8qIFdLR3JhcGhpY3NJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNDREI4ODYxRTRCQjYzRjAwQTFBRUE2
IC8qIFdLR3JhcGhpY3NJbnRlcm5hbC5oICovOyB9OwogCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEVEMkJBODNCMDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVERTNB
NTAwMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRURFM0E0RkYwQzdBNDMwNjAwOTU2QTM3IC8qIENvbG9y
TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RURFQzk4MDMwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERUM5ODAyMEFFRDdFMTcwMDU5MTM3
RiAvKiBXZWJDb3JlUHJlZml4LmggKi87IH07CkBAIC01MTU3LDcgKzUxNTEsNiBAQAogCQkwMUQz
Q0Y3RjE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0T2JqZWN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29udGV4dE9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwMUQzQ0Y4MDE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xTaGFy
ZWRPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMUQzQ0Y4MTE0QkQw
QTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR0xTaGFyZWRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMDFFNkMyRTMxMTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxsaW5nRG90QDJ4LnBuZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsg
cGF0aCA9ICJTcGVsbGluZ0RvdEAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNTYyRjk2MDE1NzNGODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA1RkQ2OURGMTI4NDVENDMwMEIyQkVCMyAvKiBET01UaW1lU3RhbXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NVGltZVN0YW1wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA2MDI3Q0FDMEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0
TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRleHRNZW51
SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI5Nyw3ICs2MjkwLDYgQEAK
IAkJMUMxOERBNTcxODFBRjZBNTAwQzRFRjIyIC8qIFRleHRQYWludGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRQYWludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDMjFFNTdBMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElPU3VyZmFjZVBvb2wuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIxRTU3QjE4M0VEMUZGMDAxQzI4OUQgLyog
SU9TdXJmYWNlUG9vbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJT1N1cmZh
Y2VQb29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDMjQxN0I5MTk5MkMwNDEw
MEVGOTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiU3BlbGxpbmdEb3RAM3gu
cG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyNEVFQTExQzcyOUIzMjAwODBG
OEZDIC8qIEZvbnRGYWNlU2V0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGb250RmFjZVNl
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMjRFRUEyMUM3MjlDRTQwMDgw
RjhGQyAvKiBGb250RmFjZVNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGb250RmFjZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMjRF
RUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb250RmFjZVNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNzE3NSw3ICs3MTY3LDYgQEAKIAkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdw
b3J0U3R5bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkw
OEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDJDREI1RUQ2MzhGNDNBRjg2RjA3
QUEyIC8qIEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0Vycm9yRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTEwM0FBNzFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MTAzQUE3MUUzOTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MjYyLDcgKzkyNTMsNiBAQAog
CQk3MUVGQ0VEQTIwMkIzODhGMDBEN0M0MTEgLyogQW5pbWF0aW9uRWZmZWN0UmVhZE9ubHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQW5pbWF0aW9uRWZmZWN0UmVh
ZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUVGQ0VEQjIwMkIzODkw
MDBEN0M0MTEgLyogS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTcxRUZDRURFMjAyQjM5QzcwMEQ3QzQxMSAvKiBKU0FuaW1hdGlvbkVmZmVjdFJlYWRP
bmx5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQW5p
bWF0aW9uRWZmZWN0UmVhZE9ubHlDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBNEE2OUI4QkI5MUI0OUQwQTgwNEMzMUQgLyogSlNQcm9taXNlUmVqZWN0aW9uRXZlbnRD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9taXNl
UmVqZWN0aW9uRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MUVGQ0VERjIwMkIzQUExMDBEN0M0MTEgLyogSlNLZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUVGQ0VFMDIwMkIzQUEzMDBEN0M0MTEg
LyogSlNLZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcxRjkzNkY3MURENEY5OUIwMDkyMkNDNyAvKiB0cmFja3Mtc3VwcG9y
dC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJ0cmFja3Mtc3Vw
cG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTE4NCw2ICsxMTE3NCw3
IEBACiAJCUE0NTQ0MjREMTE5QjM2ODcwMDlCRTkxMiAvKiBSZW5kZXJNZXRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJNZXRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNDU2RkEyNDExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFiZWxzTm9kZUxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNDU2RkEyNTExQUQ0QTgzMDAyMEI0
MjAgLyogTGFiZWxzTm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGFiZWxzTm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTRBNjlCOEJC
OTFCNDlEMEE4MDRDMzFEIC8qIEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvbWlzZVJlamVjdGlvbkV2ZW50
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUwMTkyMEMxMzJFQkYy
RTAwOEJGRTU1IC8qIEF1dG9jYXBpdGFsaXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1dG9jYXBpdGFsaXplLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1
MDcxRTgyMUM1NkQwNzkwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVVzYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNTA3MUU4MzFDNTZEMDc5MDA5OTUxQkUgLyogUmVzb3VyY2VVc2Fn
ZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJj
ZVVzYWdlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDUwLDcg
KzEzMDQxLDYgQEAKIAkJQkU4OEUwRDUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvVHJhY2tMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU4OEUwRDYxNzE1RDJBMjAwNjU4
RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvVHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFODhFMEQ3
MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVmlkZW9UcmFja0xpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
RThDNzUzMDEwNjgxMzI0MDAxRTkzRjUgLyogU3BlbGxpbmdEb3QucG5nICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gU3Bl
bGxpbmdEb3QucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRThFRjAzRTE3MUM4
RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQXVkaW9UcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJFOEVGMDNGMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBdWRpb1RyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJFOEVGMDQwMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9UcmFja0xp
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM1NjEsOCArMTM1NTEsNiBA
QAogCQlEMDAwRUQyNjExQzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ViZnJhbWVMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUIxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRT
dHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BhY2VTcGxp
dFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMUEyN0FDMTBDOUJG
RDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRDAyQjY0QjAxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5h
dGl2ZXNEb3QucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gaW1hZ2UucG5nOyBwYXRoID0gRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0Rv
dC5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwMkI2NEIxMTQwODlFNTYwMDZF
RkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0
aCA9ICJEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMzZERDhEMjA4RkZDMEMwMEY5RjRCMiAvKiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVNUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBDNUFG
MzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNTg2LDYgKzEzNTc0LDcgQEAKIAkJRDBF
REE3NzMxNDNFMzAzQzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJhd1Jlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwRkYyQTVCMTFGOEM0NUEwMDdFNzRFMCAvKiBQaW5nTG9hZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBpbmdMb2FkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMEZGMkE1QzExRjhDNDVBMDA3RTc0RTAgLyog
UGluZ0xvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaW5nTG9hZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQyQ0RCNUVENjM4RjQzQUY4NkYwN0FB
MiAvKiBKU0Vycm9yRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNFcnJvckV2ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDMwMjc1NDUxMkE1RkU4NDAwNEJEODI4IC8qIFJlbmRlckRldGFpbHNNYXJrZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRGV0YWlsc01hcmtl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQzMDI3NTQ2MTJBNUZFODQwMDRC
RDgyOCAvKiBSZW5kZXJEZXRhaWxzTWFya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlckRldGFpbHNNYXJrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDM1OUQ3ODYxMjlDQTI3MTAwMDZFNUQyIC8qIEhUTUxEZXRhaWxzRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1MTgsNyArMTQ1MDcsNiBAQAogCQlF
NEU5QjExQzE4MTQ1NjlDMDAzQUNDREYgLyogU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RjlFRUYwMTU2RDg0QzQwMEQyM0U3
RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTRGOUVFRjExNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVNoZWV0Q29udGVudHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8qIExp
c3RCdXR0b25BcnJvdy5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBMaXN0QnV0dG9uQXJyb3cucG5nOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNTE2Njk4RjIwRkY5OTE2MDA5RDJDMjcgLyogTGlzdEJ1
dHRvbkFycm93QDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJMaXN0QnV0dG9uQXJyb3dAMngucG5nIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUxNzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERh
dGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFMaXN0U3Vn
Z2VzdGlvbkluZm9ybWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MUE4
MURFMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVyZm9ybWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQ1MjgsNiArMTQ1MTYsNyBAQAogCQlFNTVGNDk3OTE1MUI4ODgwMDBC
QjY3REIgLyogTGVuZ3RoRnVuY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExlbmd0aEZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU1OEI0NUI4MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RCdXR0b25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU1OEI0NUI5MjBBRDA3REQwMDk5MTAyNSAvKiBEYXRhTGlzdEJ1dHRvbkVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0YUxpc3RCdXR0b25FbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8q
IExpc3RCdXR0b25BcnJvdy5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBMaXN0QnV0dG9uQXJyb3cucG5nOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJBN0Q2MjE1MTQzN0NBMDBGRTFFM0YgLyogTGVu
Z3RoRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlbmd0aEZ1
bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjA4MUNEODE2OTYwODQ0
MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVDb252ZXJz
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjA4MUNEOTE2OTYwODQ0MDA1
NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUeXBlQ29udmVyc2lvbnMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1MzYsNyArMTQ1MjUsNiBAQAogCQlFQ0E2
ODBDNjFFNjc3MjQ1MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFQ0E2ODBDODFFNjc3MzBCMDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3RyaW5nVXRpbGl0aWVz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQ0NEQjg4MDFFNEI4QzU5MDBBMUFF
QTYgLyogV0tDb250ZW50T2JzZXJ2YXRpb25JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0NvbnRlbnRPYnNlcnZhdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUVDQ0RCODg2MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNz
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tHcmFwaGljc0lu
dGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVEMkJBODNCMDlBMjRCOTEw
MDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEb2N1bWVudE1hcmtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFRDUw
MURDNTBCMjQ5RjI5MDBBRTE4RDkgLyogRWRpdG9yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVkaXRvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRURFM0E0RkYwQzdBNDMwNjAwOTU2QTM3IC8qIENvbG9yTWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbG9yTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xOTI1OCwxMyArMTkyNDYsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMkQ1
MEE0QjUxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRlci5wbmcgKi8sCiAJ
CQkJMkQ1MEE0QjYxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhvbGRlckAyeC5w
bmcgKi8sCi0JCQkJRDAyQjY0QjAxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdp
dGhBbHRlcm5hdGl2ZXNEb3QucG5nICovLAotCQkJCUQwMkI2NEIxMTQwODlFNTYwMDZFRkEyMSAv
KiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyAqLywKIAkJCQlFNTlE
RDRCNzIxMDk4Mjg1MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyAqLywKIAkJCQlFNTE2
Njk4RjIwRkY5OTE2MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyAqLywKLQkJCQlC
RThDNzUzMDEwNjgxMzI0MDAxRTkzRjUgLyogU3BlbGxpbmdEb3QucG5nICovLAotCQkJCTAxRTZD
MkUzMTE5NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgKi8sCi0JCQkJMUMyNDE3
QjkxOTkyQzA0MTAwRUY5OTM4IC8qIFNwZWxsaW5nRG90QDN4LnBuZyAqLywKIAkJCSk7CiAJCQlu
YW1lID0gaW1hZ2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIxMzc1LDcgKzIx
MzU4LDYgQEAKIAkJCQlFQ0NEQjg4MDFFNEI4QzU5MDBBMUFFQTYgLyogV0tDb250ZW50T2JzZXJ2
YXRpb25JbnRlcm5hbC5oICovLAogCQkJCUExNDgzMkE0MTg3RjUwODcwMERBNjNBNiAvKiBXS0dy
YXBoaWNzLmggKi8sCiAJCQkJQTE0ODMyQTUxODdGNTA4NzAwREE2M0E2IC8qIFdLR3JhcGhpY3Mu
bW0gKi8sCi0JCQkJRUNDREI4ODYxRTRCQjYzRjAwQTFBRUE2IC8qIFdLR3JhcGhpY3NJbnRlcm5h
bC5oICovLAogCQkJCUExNDgzMkE2MTg3RjUwODcwMERBNjNBNiAvKiBXS1R5cGVzLmggKi8sCiAJ
CQkJQTE0ODMyQTcxODdGNTA4NzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgKi8sCiAJCQkJQTE0
ODMyQTgxODdGNTA4NzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmggKi8sCkBAIC0zMTA3MCw3ICsz
MTA1Miw2IEBACiAJCQkJQTE0ODMyQkUxODdGNjRDQzAwREE2M0E2IC8qIFdLQ29udGVudE9ic2Vy
dmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFQ0NEQjg4MTFFNEI4QzU5MDBBMUFFQTYgLyog
V0tDb250ZW50T2JzZXJ2YXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMy
QkYxODdGNjUyQzAwREE2M0E2IC8qIFdLR3JhcGhpY3MuaCBpbiBIZWFkZXJzICovLAotCQkJCUVD
Q0RCODg3MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExNDgzMkMxMTg3RjY1N0EwMERBNjNBNiAvKiBXS1R5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTQ4MzJDMzE4N0Y2NURGMDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExNDgzMkM0MTg3RjY2M0MwMERBNjNBNiAvKiBXS1ZpZXcuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzEyOTUsOCArMzEyNzYsNiBAQAogCQkJCTJENTBBNEI4MUNFMTBFMDAw
MDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5nIGluIFJlc291cmNlcyAqLywK
IAkJCQlBMUFBOUFCOTFEMjM5MTE1MDBGRUFEQjMgLyogQ29udGVudEZpbHRlckJsb2NrZWRQYWdl
Lmh0bWwgaW4gUmVzb3VyY2VzICovLAogCQkJCUExMUU4QzA1MUIxRTI4RjQwMDAzQTdDNyAvKiBj
b3B5Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRDAyQjY0QjIxNDA4OUU1NjAwNkVG
QTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nIGluIFJlc291cmNl
cyAqLywKLQkJCQlEMDJCNjRCMzE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0
aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTdDQzdFM0Q3MTcy
MDhDMEYwMDNDNTI3NyAvKiBJRE5TY3JpcHRXaGl0ZUxpc3QudHh0IGluIFJlc291cmNlcyAqLywK
IAkJCQkyRDlGMEUxMzE0RkYxQ0JGMDBCQTBGRjcgLyogbGluZWFyU1JHQi5pY2MgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCUU1OURENEI4MjEwOTgyODcwMDNDOEI0NyAvKiBMaXN0QnV0dG9uQXJyb3cu
cG5nIGluIFJlc291cmNlcyAqLywKQEAgLTMxMzE3LDkgKzMxMjk2LDYgQEAKIAkJCQlBMTFFOEMw
NzFCMUUyOEZFMDAwM0E3QzcgLyogbm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yLnBuZyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQTExRThDMDgxQjFFMjkwMjAwMDNBN0M3IC8qIG5vcnRoU291
dGhSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQlBMTFFOEMwOTFCMUUyOTA3
MDAwM0E3QzcgLyogbm9ydGhXZXN0U291dGhFYXN0UmVzaXplQ3Vyc29yLnBuZyBpbiBSZXNvdXJj
ZXMgKi8sCi0JCQkJQkU4Qzc1MzExMDY4MTMyNDAwMUU5M0Y1IC8qIFNwZWxsaW5nRG90LnBuZyBp
biBSZXNvdXJjZXMgKi8sCi0JCQkJMDFFNkMyRTQxMTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxsaW5n
RG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMUMyNDE3QkExOTkyQzA0MTAwRUY5OTM4
IC8qIFNwZWxsaW5nRG90QDN4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJOTMxNTNCREMxNDE5
NTlCQzAwRkNGNUJFIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnBuZyBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJOTM3MDkxOEQxNDE2RDg2QjAwNDc3MzMzIC8qIHRleHRBcmVhUmVzaXplQ29ybmVyQDJ4
LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQpp
bmRleCBiNWE5ZDY2OGYxOGE1OTE4YmEyOGM5ZWRlYzBhZGVlYjdlZGZjZDEwLi4zYjJjMzliMjQ2
MDdiMjFiOGQxMDI1ZjcxMzlhMzM0ZGU1NDMwN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2Nv
YS5tbQpAQCAtNDEsNyArNDEsNiBAQAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIkNvbG9y
LmgiCiAjaW1wb3J0ICJXS0dyYXBoaWNzLmgiCi0jaW1wb3J0ICJXS0dyYXBoaWNzSW50ZXJuYWwu
aCIKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTk1LDE4ICsxOTQsNiBAQCBzdGF0
aWMgTlNJbWFnZSAqY29ycmVjdGlvbkltYWdlID0gbnVsbHB0cjsKIAogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STSAoSU9TKQotCi1zdGF0aWMgUmV0YWluUHRyPENHUGF0dGVyblJlZj4gY3JlYXRlRG90
UGF0dGVybihib29sJiB1c2luZ0RvdCwgY29uc3QgY2hhciogcmVzb3VyY2VOYW1lKQotewotICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9IGFkb3B0Q0YoV0tHcmFwaGljc0NyZWF0ZUlt
YWdlRnJvbUJ1bmRsZVdpdGhOYW1lKHJlc291cmNlTmFtZSkpOwotICAgIEFTU0VSVChpbWFnZSk7
IC8vIGlmIGltYWdlIGlzIG5vdCBhdmFpbGFibGUsIHdlIHdhbnQgdG8ga25vdwotICAgIHVzaW5n
RG90ID0gdHJ1ZTsKLSAgICByZXR1cm4gYWRvcHRDRihXS0NyZWF0ZVBhdHRlcm5Gcm9tQ0dJbWFn
ZShpbWFnZS5nZXQoKSkpOwotfQotCi0jZW5kaWYKLQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnVw
ZGF0ZURvY3VtZW50TWFya2VyUmVzb3VyY2VzKCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC0y
MjcsMTQyICsyMTQsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldFBhdHRlcm5QaGFzZUluVXNl
clNwYWNlKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1BvaW50IHBoYXMKICAgICBDR0NvbnRleHRT
ZXRQYXR0ZXJuUGhhc2UoY29udGV4dCwgQ0dTaXplTWFrZShwaGFzZS54LCBwaGFzZS55KSk7CiB9
CiAKLS8vIFdlYktpdCBvbiBNYWMgaXMgYSBzdGFuZGFyZCBwbGF0Zm9ybSBjb21wb25lbnQsIHNv
IGl0IG11c3QgdXNlIHRoZSBzdGFuZGFyZCBwbGF0Zm9ybSBhcnR3b3JrIGZvciB1bmRlcmxpbmUu
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0
eWxlKQorLy8gRklYTUU6IFdlIG5lZWQgdG8ga2VlcCB0aGlzIGZ1bmN0aW9uIHNpbmNlIGl0IGlz
IHJlZmVyZW5jZWQgYnkgRHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6YXBwbHkoKS4KK3ZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9p
bnQmLCBmbG9hdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpCiB7Ci0gICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1l
IGZvciBtaXNzcGVsbGluZyBvciBiYWQgZ3JhbW1hci4KLSAgICBpbnQgcGF0dGVybkhlaWdodCA9
IGNNaXNzcGVsbGluZ0xpbmVUaGlja25lc3M7Ci0gICAgZmxvYXQgcGF0dGVybldpZHRoID0gY01p
c3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aDsKLQotICAgIGJvb2wgdXNpbmdEb3Q7Ci0jaWYgIVBM
QVRGT1JNKElPUykKLSAgICBOU0ltYWdlICppbWFnZTsKLSAgICBOU0NvbG9yICpmYWxsYmFja0Nv
bG9yOwotI2Vsc2UKLSAgICBDR1BhdHRlcm5SZWYgZG90UGF0dGVybjsKLSNlbmRpZgotICAgIHN3
aXRjaCAoc3R5bGUpIHsKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpTcGVsbGlu
ZzogewotICAgICAgICAvLyBDb25zdGFudHMgZm9yIHNwZWxsaW5nIHBhdHRlcm4gY29sb3IuCi0g
ICAgICAgIHN0YXRpYyBib29sIHVzaW5nRG90Rm9yU3BlbGxpbmcgPSBmYWxzZTsKLSNpZiAhUExB
VEZPUk0oSU9TKQotICAgICAgICBpZiAoIXNwZWxsaW5nSW1hZ2UpCi0gICAgICAgICAgICBzcGVs
bGluZ0ltYWdlID0gW2ZpbmRJbWFnZShAIk5TU3BlbGxpbmdEb3QiLCBAIlNwZWxsaW5nRG90Iiwg
dXNpbmdEb3RGb3JTcGVsbGluZykgcmV0YWluXTsKLSAgICAgICAgaW1hZ2UgPSBzcGVsbGluZ0lt
YWdlOwotICAgICAgICBmYWxsYmFja0NvbG9yID0gW05TQ29sb3IgcmVkQ29sb3JdOwotI2Vsc2UK
LSAgICAgICAgc3RhdGljIENHUGF0dGVyblJlZiBzcGVsbGluZ1BhdHRlcm4gPSBjcmVhdGVEb3RQ
YXR0ZXJuKHVzaW5nRG90Rm9yU3BlbGxpbmcsICJTcGVsbGluZ0RvdCIpLmxlYWtSZWYoKTsKLSAg
ICAgICAgZG90UGF0dGVybiA9IHNwZWxsaW5nUGF0dGVybjsKLSNlbmRpZgotICAgICAgICB1c2lu
Z0RvdCA9IHVzaW5nRG90Rm9yU3BlbGxpbmc7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBj
YXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpHcmFtbWFyOiB7Ci0jaWYgIVBMQVRGT1JNKElP
UykKLSAgICAgICAgLy8gQ29uc3RhbnRzIGZvciBncmFtbWFyIHBhdHRlcm4gY29sb3IuCi0gICAg
ICAgIHN0YXRpYyBib29sIHVzaW5nRG90Rm9yR3JhbW1hciA9IGZhbHNlOwotICAgICAgICBpZiAo
IWdyYW1tYXJJbWFnZSkKLSAgICAgICAgICAgIGdyYW1tYXJJbWFnZSA9IFtmaW5kSW1hZ2UoQCJO
U0dyYW1tYXJEb3QiLCBAIkdyYW1tYXJEb3QiLCB1c2luZ0RvdEZvckdyYW1tYXIpIHJldGFpbl07
Ci0gICAgICAgIHVzaW5nRG90ID0gZ3JhbW1hckltYWdlOwotICAgICAgICBpbWFnZSA9IGdyYW1t
YXJJbWFnZTsKLSAgICAgICAgZmFsbGJhY2tDb2xvciA9IFtOU0NvbG9yIGdyZWVuQ29sb3JdOwot
ICAgICAgICBicmVhazsKLSNlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm47Ci0jZW5kaWYKLSAgICB9Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIC8vIFRv
IHN1cHBvcnQgY29ycmVjdGlvbiBwYW5lbC4KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0
eWxlOjpBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50OgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJM
aW5lU3R5bGU6OkRpY3RhdGlvbkFsdGVybmF0aXZlczogewotICAgICAgICAvLyBDb25zdGFudHMg
Zm9yIHNwZWxsaW5nIHBhdHRlcm4gY29sb3IuCi0gICAgICAgIHN0YXRpYyBib29sIHVzaW5nRG90
Rm9yU3BlbGxpbmcgPSBmYWxzZTsKLSAgICAgICAgaWYgKCFjb3JyZWN0aW9uSW1hZ2UpCi0gICAg
ICAgICAgICBjb3JyZWN0aW9uSW1hZ2UgPSBbZmluZEltYWdlKEAiTlNDb3JyZWN0aW9uRG90Iiwg
QCJDb3JyZWN0aW9uRG90IiwgdXNpbmdEb3RGb3JTcGVsbGluZykgcmV0YWluXTsKLSAgICAgICAg
dXNpbmdEb3QgPSB1c2luZ0RvdEZvclNwZWxsaW5nOwotICAgICAgICBpbWFnZSA9IGNvcnJlY3Rp
b25JbWFnZTsKLSAgICAgICAgZmFsbGJhY2tDb2xvciA9IFtOU0NvbG9yIGJsdWVDb2xvcl07Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBjYXNl
IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpUZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRo
QWx0ZXJuYXRpdmVzOiB7Ci0gICAgICAgIHN0YXRpYyBib29sIHVzaW5nRG90Rm9yRGljdGF0aW9u
UGhyYXNlV2l0aEFsdGVybmF0aXZlcyA9IGZhbHNlOwotICAgICAgICBzdGF0aWMgQ0dQYXR0ZXJu
UmVmIGRpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNQYXR0ZXJuID0gY3JlYXRlRG90UGF0
dGVybih1c2luZ0RvdEZvckRpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXMsICJEaWN0YXRp
b25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90IikubGVha1JlZigpOwotICAgICAgICBkb3RQYXR0
ZXJuID0gZGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc1BhdHRlcm47Ci0gICAgICAgIHVz
aW5nRG90ID0gdXNpbmdEb3RGb3JEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOwotICAg
ICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotICAgIGRlZmF1bHQ6
Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHJlbW92ZSBkZWZh
dWx0IGNhc2Ugc28gd2UgZ2V0IGNvbXBpbGUtdGltZSBlcnJvcnMuCi0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICAKLSAgICBGbG9hdFBvaW50IG9mZnNldFBvaW50ID0gcG9pbnQ7Ci0KLSAgICAv
LyBNYWtlIHN1cmUgdG8gZHJhdyBvbmx5IGNvbXBsZXRlIGRvdHMuCi0gICAgaWYgKHVzaW5nRG90
KSB7Ci0gICAgICAgIC8vIGFsbG93IHNsaWdodGx5IG1vcmUgY29uc2lkZXJpbmcgdGhhdCB0aGUg
cGF0dGVybiBlbmRzIHdpdGggYSB0cmFuc3BhcmVudCBwaXhlbAotICAgICAgICBmbG9hdCB3aWR0
aE1vZCA9IGZtb2RmKHdpZHRoLCBwYXR0ZXJuV2lkdGgpOwotICAgICAgICBpZiAocGF0dGVybldp
ZHRoIC0gd2lkdGhNb2QgPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKSB7Ci0gICAg
ICAgICAgICBmbG9hdCBnYXBJbmNsdWRlV2lkdGggPSAwOwotICAgICAgICAgICAgaWYgKHdpZHRo
ID4gcGF0dGVybldpZHRoKQotICAgICAgICAgICAgICAgIGdhcEluY2x1ZGVXaWR0aCA9IGNNaXNz
cGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGg7Ci0gICAgICAgICAgICBvZmZzZXRQb2ludC5tb3Zl
KGZsb29yKCh3aWR0aE1vZCArIGdhcEluY2x1ZGVXaWR0aCkgLyAyKSwgMCk7Ci0gICAgICAgICAg
ICB3aWR0aCAtPSB3aWR0aE1vZDsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICAvLyBGSVhN
RTogVGhpcyBjb2RlIHNob3VsZCBub3QgdXNlIE5TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250
ZXh0Ci0gICAgLy8gSW4gb3JkZXIgdG8gcmVtb3ZlIHRoaXMgcmVxdWlyZW1lbnQgd2Ugd2lsbCBu
ZWVkIHRvIHVzZSBDR1BhdHRlcm4gaW5zdGVhZCBvZiBOU0NvbG9yCi0gICAgLy8gRklYTUU6IFRo
aXMgY29kZSBzaG91bGQgbm90IGJlIHVzaW5nIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNlLCBh
cyB0aGlzIGFwcHJvYWNoIGlzIHdyb25nCi0gICAgLy8gZm9yIHRyYW5zZm9ybXMuCi0KLSAgICAv
LyBEcmF3IHVuZGVybGluZS4KLSAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29u
dGV4dCgpOwotICAgIENHQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlciB7IGNvbnRleHQgfTsK
LQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBXS1NldFBhdHRlcm4oY29udGV4dCwgZG90UGF0dGVy
biwgWUVTLCBZRVMpOwotI2VuZGlmCi0KLSAgICBzZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZShj
b250ZXh0LCBvZmZzZXRQb2ludCk7Ci0KLSAgICBDR1JlY3QgZGVzdGluYXRpb25SZWN0ID0gQ0dS
ZWN0TWFrZShvZmZzZXRQb2ludC54KCksIG9mZnNldFBvaW50LnkoKSwgd2lkdGgsIHBhdHRlcm5I
ZWlnaHQpOwotI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIENH
Q29udGV4dENsaXBUb1JlY3QoY29udGV4dCwgZGVzdGluYXRpb25SZWN0KTsKLQotICAgICAgICAv
LyBXZSBleHBsaWNpdGx5IGZsaXAgY29vcmRpbmF0ZXMgc28gYXMgdG8gZW5zdXJlIHdlIHBhaW50
IHRoZSBpbWFnZSByaWdodC1zaWRlIHVwLiBXZSBkbyB0aGlzIGJlY2F1c2UKLSAgICAgICAgLy8g
LVtOU0ltYWdlIENHSW1hZ2VGb3JQcm9wb3NlZFJlY3Q6Y29udGV4dDpoaW50czpdIGRvZXMgbm90
IGd1YXJhbnRlZSB0aGF0IHRoZSByZXR1cm5lZCBpbWFnZSB3aWxsIHJlc3BlY3QKLSAgICAgICAg
Ly8gYW55IHRyYW5zZm9ybXMgYXBwbGllZCB0byB0aGUgY29udGV4dCBvciBhbnkgc3BlY2lmaWVk
IGhpbnRzLgotICAgICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgMCwgcGF0dGVy
bkhlaWdodCk7Ci0gICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0xKTsKLQot
ICAgICAgICBOU1JlY3QgZG90UmVjdCA9IE5TTWFrZVJlY3Qob2Zmc2V0UG9pbnQueCgpLCBwYXR0
ZXJuSGVpZ2h0IC0gb2Zmc2V0UG9pbnQueSgpLCBwYXR0ZXJuV2lkdGgsIHBhdHRlcm5IZWlnaHQp
OyAvLyBBZGp1c3QgeSBwb3NpdGlvbiBhcyB3ZSBmbGlwcGVkIGNvb3JkaW5hdGVzLgotCi0gICAg
ICAgIC8vIEZJWE1FOiBSYXRoZXIgdGhhbiBnZXR0aW5nIHRoZSBOU0ltYWdlIGFuZCB0aGVuIHBp
Y2tpbmcgdGhlIENHSW1hZ2UgZnJvbSBpdCwgd2Ugc2hvdWxkIGRvIHdoYXQgaU9TIGRvZXMgYW5k
Ci0gICAgICAgIC8vIGp1c3QgbG9hZCB0aGUgQ0dJbWFnZSBpbiB0aGUgZmlyc3QgcGxhY2UuCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIENHSW1hZ2VSZWYgY2dJ
bWFnZSA9IFtpbWFnZSBDR0ltYWdlRm9yUHJvcG9zZWRSZWN0OiZkb3RSZWN0IGNvbnRleHQ6W05T
R3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBm
bGlwcGVkOk5PXSBoaW50czpudWxscHRyXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AK
LSAgICAgICAgQ0dDb250ZXh0RHJhd1RpbGVkSW1hZ2UoY29udGV4dCwgTlNSZWN0VG9DR1JlY3Qo
ZG90UmVjdCksIGNnSW1hZ2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIENHQ29udGV4dFNldEZp
bGxDb2xvcldpdGhDb2xvcihjb250ZXh0LCBbZmFsbGJhY2tDb2xvciBDR0NvbG9yXSk7Ci0gICAg
ICAgIENHQ29udGV4dEZpbGxSZWN0KGNvbnRleHQsIGRlc3RpbmF0aW9uUmVjdCk7Ci0gICAgfQot
I2Vsc2UKLSAgICBXS1JlY3RGaWxsVXNpbmdPcGVyYXRpb24oY29udGV4dCwgZGVzdGluYXRpb25S
ZWN0LCBrQ0dDb21wb3NpdGVTb3Zlcik7Ci0jZW5kaWYKKyAgICAvLyBDb2NvYSBwbGF0Zm9ybSB1
c2UgdGhlIHRoZW1lIHRvIHBhaW50IHRoZSBwbGF0Zm9ybSBkb2N1bWVudCBtYXJrZXJzLgogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
d2FrL1dLR3JhcGhpY3MubW0KaW5kZXggNjhlYjZkZWU3YjZjNzJjZGRlNzljYmFjOTFmNmUyNWY3
MDFhNDYwOC4uZGZjNmUwZWUzNWY3ZjhmNDlmY2Q2MDkzMDJiNzRkMzFjOTYwYmVkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0dyYXBoaWNzLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGljcy5tbQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNSwxNiArMjUsMTEgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJX
S0dyYXBoaWNzLmgiCi0jaW1wb3J0ICJXS0dyYXBoaWNzSW50ZXJuYWwuaCIKIAogI2lmIFBMQVRG
T1JNKElPUykKIAotI2ltcG9ydCAiRm9udENhc2NhZGUuaCIKLSNpbXBvcnQgIlBsYXRmb3JtU2Ny
ZWVuLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFkSW50ZXJuYWwuaCIKLSNpbXBvcnQgPEltYWdl
SU8vSW1hZ2VJTy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KLSNp
bXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTU2LDI4ICs1MSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX0ZpbGxSZWN0c1VzaW5nT3Bl
cmF0aW9uKENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDR1JlY3QqCiAgICAgQ0dDb250ZXh0
U2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbnRleHQsIG9sZE9wKTsKIH0KIAotc3RhdGljIGlubGlu
ZSB2b2lkIF9GaWxsUmVjdFVzaW5nT3BlcmF0aW9uKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1Jl
Y3QgcmVjdCwgQ0dDb21wb3NpdGVPcGVyYXRpb24gb3ApCi17Ci0gICAgaWYgKHJlY3Quc2l6ZS53
aWR0aCA+IDAgJiYgcmVjdC5zaXplLmhlaWdodCA+IDApIHsKLSAgICAgICAgX0ZpbGxSZWN0c1Vz
aW5nT3BlcmF0aW9uIChjb250ZXh0LCAmcmVjdCwgMSwgb3ApOwotICAgIH0KLX0KLQogdm9pZCBX
S1JlY3RGaWxsKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgYVJlY3QpCiB7CiAgICAgaWYg
KGFSZWN0LnNpemUud2lkdGggPiAwICYmIGFSZWN0LnNpemUuaGVpZ2h0ID4gMCkgewogICAgICAg
ICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwotICAgICAgICBfRmlsbFJlY3RVc2luZ09w
ZXJhdGlvbihjb250ZXh0LCBhUmVjdCwga0NHQ29tcG9zaXRlQ29weSk7Ci0gICAgICAgIENHQ29u
dGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7Ci0gICAgfQotfQotCi12b2lkIFdLUmVjdEZpbGxV
c2luZ09wZXJhdGlvbihDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IGFSZWN0LCBXS0NvbXBv
c2l0ZU9wZXJhdGlvbiBjb21wb3NpdGVPcGVyYXRpb24pCi17Ci0gICAgQ09NUElMRV9BU1NFUlQo
c2l6ZW9mKFdLQ29tcG9zaXRlT3BlcmF0aW9uKSA9PSBzaXplb2YoQ0dDb21wb3NpdGVPcGVyYXRp
b24pLCAiV0tDb21wb3NpdGVPcGVyYXRpb24gbXVzdCBiZSB0aGUgc2FtZSBzaXplIGFzIENHQ29t
cG9zaXRlT3BlcmF0aW9uLiIpOwotICAgIGlmIChhUmVjdC5zaXplLndpZHRoID4gMCAmJiBhUmVj
dC5zaXplLmhlaWdodCA+IDAuMCkgewotICAgICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRl
eHQpOwotICAgICAgICBfRmlsbFJlY3RVc2luZ09wZXJhdGlvbihjb250ZXh0LCBhUmVjdCwgc3Rh
dGljX2Nhc3Q8Q0dDb21wb3NpdGVPcGVyYXRpb24+KGNvbXBvc2l0ZU9wZXJhdGlvbikpOworICAg
ICAgICBpZiAoYVJlY3Quc2l6ZS53aWR0aCA+IDAgJiYgYVJlY3Quc2l6ZS5oZWlnaHQgPiAwKQor
ICAgICAgICAgICAgX0ZpbGxSZWN0c1VzaW5nT3BlcmF0aW9uKGNvbnRleHQsICZhUmVjdCwgMSwg
a0NHQ29tcG9zaXRlQ29weSk7CiAgICAgICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4
dCk7CiAgICAgfQogfQpAQCAtOTQsODMgKzczLDQgQEAgQ0dDb250ZXh0UmVmIFdLR2V0Q3VycmVu
dEdyYXBoaWNzQ29udGV4dCh2b2lkKQogICAgIHJldHVybiB0aHJlYWRDb250ZXh0LT5jdXJyZW50
Q0dDb250ZXh0OwogfQogCi1zdGF0aWMgTlNTdHJpbmcgKmltYWdlUmVzb3VyY2VQYXRoKGNvbnN0
IGNoYXIqIGltYWdlRmlsZSwgdW5zaWduZWQgc2NhbGVGYWN0b3IpCi17Ci0gICAgTlNTdHJpbmcg
KmZpbGVOYW1lID0gc2NhbGVGYWN0b3IgPT0gMSA/IFtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0
cmluZzppbWFnZUZpbGVdIDogW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlc0AlZHgiLCBp
bWFnZUZpbGUsIHNjYWxlRmFjdG9yXTsKLSNpZiBQTEFURk9STShJT1NfU0lNVUxBVE9SKQotICAg
IE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlV2l0aElkZW50aWZpZXI6QCJjb20u
YXBwbGUuV2ViQ29yZSJdOwotICAgIHJldHVybiBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxl
TmFtZSBvZlR5cGU6QCJwbmciXTsKLSNlbHNlCi0gICAgLy8gV29ya2Fyb3VuZCBmb3IgPHJkYXI6
Ly9wcm9ibGVtLzc3ODA2NjU+IENGQnVuZGxlQ29weVJlc291cmNlVVJMIHRha2VzIGEgbG9uZyB0
aW1lIG9uIGlQaG9uZSAzRy4KLSAgICBOU1N0cmluZyAqaW1hZ2VEaXJlY3RvcnkgPSBAIi9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9XZWJDb3JlLmZyYW1ld29yayI7Ci0gICAgcmV0
dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAvJUAucG5nIiwgaW1hZ2VEaXJlY3Rv
cnksIGZpbGVOYW1lXTsKLSNlbmRpZgotfQotCi1DR0ltYWdlUmVmIFdLR3JhcGhpY3NDcmVhdGVJ
bWFnZUZyb21CdW5kbGVXaXRoTmFtZShjb25zdCBjaGFyICppbWFnZV9maWxlKQotewotICAgIGlm
ICghaW1hZ2VfZmlsZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBDR0ltYWdlUmVmIGlt
YWdlID0gbnVsbHB0cjsKLSAgICBOU0RhdGEgKmltYWdlRGF0YSA9IG51bGxwdHI7Ci0gICAgZm9y
ICh1bnNpZ25lZCBzY2FsZUZhY3RvciA9IHNjcmVlblNjYWxlRmFjdG9yKCk7IHNjYWxlRmFjdG9y
ID4gMDsgLS1zY2FsZUZhY3RvcikgewotICAgICAgICBpbWFnZURhdGEgPSBbTlNEYXRhIGRhdGFX
aXRoQ29udGVudHNPZkZpbGU6aW1hZ2VSZXNvdXJjZVBhdGgoaW1hZ2VfZmlsZSwgc2NhbGVGYWN0
b3IpXTsKLSAgICAgICAgQVNTRVJUKHNjYWxlRmFjdG9yICE9IHNjcmVlblNjYWxlRmFjdG9yKCkg
fHwgaW1hZ2VEYXRhKTsKLSAgICAgICAgaWYgKGltYWdlRGF0YSkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgIH0KLSAgICAKLSAgICBpZiAoaW1hZ2VEYXRhKSB7Ci0gICAgICAgIFJldGFpblB0cjxD
R0RhdGFQcm92aWRlclJlZj4gZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNy
ZWF0ZVdpdGhDRkRhdGEocmVpbnRlcnByZXRfY2FzdDxDRkRhdGFSZWY+KGltYWdlRGF0YSkpKTsK
LSAgICAgICAgaW1hZ2UgPSBDR0ltYWdlQ3JlYXRlV2l0aFBOR0RhdGFQcm92aWRlcihkYXRhUHJv
dmlkZXIuZ2V0KCksIG51bGxwdHIsIE5PLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19Ci0KLXN0YXRpYyB2b2lkIFdLRHJhd1BhdHRlcm5C
aXRtYXAodm9pZCAqaW5mbywgQ0dDb250ZXh0UmVmIGMpIAotewotICAgIENHSW1hZ2VSZWYgaW1h
Z2UgPSAoQ0dJbWFnZVJlZilpbmZvOwotICAgIENHRmxvYXQgc2NhbGUgPSBzY3JlZW5TY2FsZUZh
Y3RvcigpOwotICAgIENHQ29udGV4dERyYXdJbWFnZShjLCBDR1JlY3RNYWtlKDAsIDAsIENHSW1h
Z2VHZXRXaWR0aChpbWFnZSkgLyBzY2FsZSwgQ0dJbWFnZUdldEhlaWdodChpbWFnZSkgLyBzY2Fs
ZSksIGltYWdlKTsgICAgCi19Ci0KLXN0YXRpYyB2b2lkIFdLUmVsZWFzZVBhdHRlcm5CaXRtYXAo
dm9pZCAqaW5mbykgCi17Ci0gICAgQ0dJbWFnZVJlbGVhc2UocmVpbnRlcnByZXRfY2FzdDxDR0lt
YWdlUmVmPihpbmZvKSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBDR1BhdHRlcm5DYWxsYmFja3MgV0tQ
YXR0ZXJuQml0bWFwQ2FsbGJhY2tzID0gCi17Ci0gICAgMCwgV0tEcmF3UGF0dGVybkJpdG1hcCwg
V0tSZWxlYXNlUGF0dGVybkJpdG1hcAotfTsKLQotQ0dQYXR0ZXJuUmVmIFdLQ3JlYXRlUGF0dGVy
bkZyb21DR0ltYWdlKENHSW1hZ2VSZWYgaW1hZ2VSZWYpCi17Ci0gICAgLy8gcmV0YWluIGltYWdl
IHNpbmNlIGl0J3MgZnJlZWQgYnkgb3VyIGNhbGxiYWNrCi0gICAgQ0dJbWFnZVJldGFpbihpbWFn
ZVJlZik7Ci0KLSAgICBDR0Zsb2F0IHNjYWxlID0gc2NyZWVuU2NhbGVGYWN0b3IoKTsKLSAgICBy
ZXR1cm4gQ0dQYXR0ZXJuQ3JlYXRlKCh2b2lkKilpbWFnZVJlZiwgQ0dSZWN0TWFrZSgwLCAwLCBD
R0ltYWdlR2V0V2lkdGgoaW1hZ2VSZWYpIC8gc2NhbGUsIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2VS
ZWYpIC8gc2NhbGUpLCBDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5LCBDR0ltYWdlR2V0V2lkdGgo
aW1hZ2VSZWYpIC8gc2NhbGUsIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2VSZWYpIC8gc2NhbGUsIGtD
R1BhdHRlcm5UaWxpbmdDb25zdGFudFNwYWNpbmcsIDEgLyppc0NvbG9yZWQqLywgJldLUGF0dGVy
bkJpdG1hcENhbGxiYWNrcyk7Ci19Ci0KLXZvaWQgV0tTZXRQYXR0ZXJuKENHQ29udGV4dFJlZiBj
b250ZXh0LCBDR1BhdHRlcm5SZWYgcGF0dGVybiwgYm9vbCBmaWxsLCBib29sIHN0cm9rZSkgCi17
Ci0gICAgaWYgKHBhdHRlcm4gPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ0dGbG9h
dCBwYXR0ZXJuQWxwaGEgPSAxOwotICAgIENHQ29sb3JTcGFjZVJlZiBjb2xvcnNwYWNlID0gQ0dD
b2xvclNwYWNlQ3JlYXRlUGF0dGVybihOVUxMKTsKLSAgICBpZiAoZmlsbCkgewotICAgICAgICBD
R0NvbnRleHRTZXRGaWxsQ29sb3JTcGFjZShjb250ZXh0LCBjb2xvcnNwYWNlKTsKLSAgICAgICAg
Q0dDb250ZXh0U2V0RmlsbFBhdHRlcm4oY29udGV4dCwgcGF0dGVybiwgJnBhdHRlcm5BbHBoYSk7
Ci0gICAgfQotICAgIGlmIChzdHJva2UpIHsKLSAgICAgICAgQ0dDb250ZXh0U2V0U3Ryb2tlQ29s
b3JTcGFjZShjb250ZXh0LCBjb2xvcnNwYWNlKTsKLSAgICAgICAgQ0dDb250ZXh0U2V0U3Ryb2tl
UGF0dGVybihjb250ZXh0LCBwYXR0ZXJuLCAmcGF0dGVybkFscGhhKTsKLSAgICB9Ci0gICAgQ0dD
b2xvclNwYWNlUmVsZWFzZShjb2xvcnNwYWNlKTsKLX0KLQogI2VuZGlmIC8vIFBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGlj
c0ludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3NJ
bnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmVkNDc2ZjIyYzA1MTUx
OWRhMDJmZDUxMjE3ZWY2ZGY0MjNmODRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGlj
c0ludGVybmFsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpZiBUQVJHRVRfT1NfSVBIT05FCi0KLSNpbXBvcnQgPENvcmVHcmFw
aGljcy9Db3JlR3JhcGhpY3MuaD4KLQotdHlwZWRlZiBpbnQgV0tDb21wb3NpdGVPcGVyYXRpb247
Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotdm9pZCBXS1Jl
Y3RGaWxsVXNpbmdPcGVyYXRpb24oQ0dDb250ZXh0UmVmLCBDR1JlY3QsIFdLQ29tcG9zaXRlT3Bl
cmF0aW9uKTsKLUNHSW1hZ2VSZWYgV0tHcmFwaGljc0NyZWF0ZUltYWdlRnJvbUJ1bmRsZVdpdGhO
YW1lKGNvbnN0IGNoYXIgKmltYWdlX2ZpbGUpOwotQ0dQYXR0ZXJuUmVmIFdLQ3JlYXRlUGF0dGVy
bkZyb21DR0ltYWdlKENHSW1hZ2VSZWYgaW1hZ2VSZWYpOwotdm9pZCBXS1NldFBhdHRlcm4oQ0dD
b250ZXh0UmVmIGNvbnRleHQsIENHUGF0dGVyblJlZiBwYXR0ZXJuLCBib29sIGZpbGwsIGJvb2wg
c3Ryb2tlKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8vIFRB
UkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNw
cAppbmRleCA1ZWFjNzRhYmQyMWIxMTZhNzNmNTA0YzI1YzJjMTkzYjAyMTQ1YmE4Li4wYTc4NGNj
YzM0YWYwMWRiMTA2NDg2ZmJjNzczNTEzM2E1MDRjNmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC03MjYsNyArNzI2LDcgQEAgdm9pZCBJbmxpbmVU
ZXh0Qm94OjpwYWludFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdAogICAgICAgICB1bmRlcmxpbmVPZmZzZXQgPSBiYXNlbGluZSArIDI7CiAgICAg
fQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbmRlclRo
ZW1lOjpzaW5nbGV0b24oKS5kcmF3TGluZUZvckRvY3VtZW50TWFya2VyKHJlbmRlcmVyKCksIGNv
bnRleHQsIEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIHN0YXJ0LCBib3hPcmlnaW4ueSgpICsg
dW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVTdHlsZUZvck1hcmtlZFRleHRUeXBlKG1hcmtl
ZFRleHQudHlwZSkpOwogI2Vsc2UKICAgICBjb250ZXh0LmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJr
ZXIoRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgc3RhcnQsIGJveE9yaWdpbi55KCkgKyB1bmRl
cmxpbmVPZmZzZXQpLCB3aWR0aCwgbGluZVN0eWxlRm9yTWFya2VkVGV4dFR5cGUobWFya2VkVGV4
dC50eXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApp
bmRleCAzMDE1MWQ4NDhlZTQ1Y2Y4NWQ4ODk0MTEzMTQyZTA3MjI5YmUxYzRjLi5jMjgzMGZlOGFk
Y2FkNTFlMTJkNDMxYmQ2YWZlMTMzNDk5ZGIzMzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLmgKQEAgLTM2LDYgKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVibGljIFJlbmRlclRoZW1lIHsKIHBy
aXZhdGU6CisgICAgdm9pZCBkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IFJlbmRlclRl
eHQmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdp
ZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSkgZmluYWw7CisKICNpZiBFTkFCTEUoQVBQTEVf
UEFZKQogICAgIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwg
UmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBw
YWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ29jb2EubW0KaW5kZXggZGYyYzczMWQwODk2NzYxZDI3NzQyZGQ5M2VlNmUxMzEz
ZGRmZDI5MS4uYzJjNDVkNzY4OTRjMTA2ZWI1ZTAxMDI3MGU5MTA0NDAwYjJjM2I4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KQEAgLTIzLDE2ICsy
MywxOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVtZUNvY29hLmgiCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIlJlbmRlclRoZW1lQ29jb2EuaCIKIAogI2lmIEVOQUJMRShBUFBM
RV9QQVkpCiAKLSNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKLSNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKLSNpbmNsdWRl
IDxwYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaD4KLSNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcu
aD4KKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW1wb3J0ICJSZW5kZXJFbGVtZW50
LmgiCisjaW1wb3J0ICJSZW5kZXJTdHlsZS5oIgorI2ltcG9ydCAiUmVuZGVyVGV4dC5oIgorI2lt
cG9ydCAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL1Bhc3NLaXRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiAjaWYgUExB
VEZPUk0oTUFDKQogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKFBhc3NLaXQpOwpAQCAtNDUs
MTIgKzQ3LDU2IEBAIFNPRlRfTElOS19NQVlfRkFJTChQYXNzS2l0LCBQS0RyYXdBcHBsZVBheUJ1
dHRvbiwgdm9pZCwgKENHQ29udGV4dFJlZiBjb250ZXh0LCBDCiAjZW5kaWYgLy8gRU5BQkxFKEFQ
UExFX1BBWSkKIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdz
LmgiCi0jaW5jbHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgQ0dDb2xvclJlZiBjb2xvckZvclN0
eWxlKERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlLCBib29sIHVzZURhcmtNb2RlKQorewor
ICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAvLyBSZWQKKyAgICBjYXNlIERvY3VtZW50TWFya2Vy
TGluZVN0eWxlOjpTcGVsbGluZzoKKyAgICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFy
a01vZGUgPyBDb2xvciB7IDI1NSwgMTQwLCAxNDAsIDIxNyB9IDogQ29sb3IgeyAyNTUsIDU5LCA0
OCwgMTkxIH0pOworICAgIC8vIEJsdWUKKyAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxl
OjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM6CisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHls
ZTo6VGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlczoKKyAgICBjYXNl
IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50OgorICAg
ICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgNDAsIDE0NSwg
MjU1LCAyMTcgfSA6IENvbG9yIHsgMCwgMTIyLCAyNTUsIDE5MSB9KTsKKyAgICAvLyBHcmVlbgor
ICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkdyYW1tYXI6CisgICAgICAgIHJldHVy
biBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyA1MCwgMjE1LCA3NSwgMjE3IH0g
OiBDb2xvciB7IDI1LCAxNzUsIDUwLCAxOTEgfSk7CisgICAgfQorfQorCit2b2lkIFJlbmRlclRo
ZW1lQ29jb2E6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVuZGVyVGV4dCYgcmVu
ZGVyZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgb3JpZ2lu
LCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCit7CisgICAgaWYg
KGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
IGNpcmNsZUNvbG9yID0gY29sb3JGb3JTdHlsZShzdHlsZSwgcmVuZGVyZXIucGFnZSgpLnVzZVN5
c3RlbUFwcGVhcmFuY2UoKSAmJiByZW5kZXJlci5wYWdlKCkudXNlRGFya0FwcGVhcmFuY2UoKSk7
CisKKyAgICAvLyBDZW50ZXIgdGhlIHVuZGVybGluZSBhbmQgZW5zdXJlIHdlIG9ubHkgZHJhdyBl
bnRpcmUgZG90cy4KKyAgICBGbG9hdFBvaW50IG9mZnNldFBvaW50ID0gb3JpZ2luOworICAgIGZs
b2F0IHdpZHRoTW9kID0gZm1vZGYod2lkdGgsIGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGgp
OworICAgIGlmIChjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoIC0gd2lkdGhNb2QgPiBjTWlz
c3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKSB7CisgICAgICAgIGZsb2F0IGdhcEluY2x1ZGVX
aWR0aCA9IDA7CisgICAgICAgIGlmICh3aWR0aCA+IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lk
dGgpCisgICAgICAgICAgICBnYXBJbmNsdWRlV2lkdGggPSBjTWlzc3BlbGxpbmdMaW5lUGF0dGVy
bkdhcFdpZHRoOworICAgICAgICBvZmZzZXRQb2ludC5tb3ZlKGZsb29yKCh3aWR0aE1vZCArIGdh
cEluY2x1ZGVXaWR0aCkgLyAyKSwgMCk7CisgICAgICAgIHdpZHRoIC09IHdpZHRoTW9kOworICAg
IH0KKworICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gY29udGV4dC5wbGF0Zm9ybUNvbnRleHQo
KTsKKyAgICBDR0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIgeyBjb250ZXh0IH07CisgICAg
Q0dDb250ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9yKGNvbnRleHQsIGNpcmNsZUNvbG9yKTsKKyAg
ICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4ICs9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJu
V2lkdGgpCisgICAgICAgIENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QoY29udGV4dCwgQ0dSZWN0
TWFrZShvZmZzZXRQb2ludC54KCkgKyB4LCBvZmZzZXRQb2ludC55KCksIGNNaXNzcGVsbGluZ0xp
bmVUaGlja25lc3MsIGNNaXNzcGVsbGluZ0xpbmVUaGlja25lc3MpKTsKKyAgICBDR0NvbnRleHRT
ZXRDb21wb3NpdGVPcGVyYXRpb24oY29udGV4dCwga0NHQ29tcG9zaXRlU292ZXIpOworICAgIENH
Q29udGV4dEZpbGxQYXRoKGNvbnRleHQpOworfQorCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAog
c3RhdGljIGNvbnN0IGF1dG8gYXBwbGVQYXlCdXR0b25NaW5pbXVtV2lkdGggPSAxNDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IGQ5OGRlM2E5NTk5MTZj
OGZhYTM1NGRlZGU1MTk5OGY4OGQ4YjBlOWMuLmJhNzliZGFjNzI5N2IzMWI0NmE2YmY0ZDVkMzcy
MTVhYTM5ODM5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5o
CkBAIC0xNzQsOCArMTc0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50QXR0YWNobWVudChj
b25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgZmlu
YWw7CiAjZW5kaWYKIAotICAgIHZvaWQgZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBS
ZW5kZXJUZXh0JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBm
bG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIGZpbmFsOwotCiAgICAgYm9vbCB1
c2luZ0RhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0IGZpbmFsOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4
IGI4ODlkYWM0ZDRhMTIyMWNkNTdlZWIwZmQxMmJjNTU2MTBjOTNiNDMuLjA1ZTc4MWEyMzM3NGI4
NzRhMGUzODg5NWU0MWY3OWY2ZDBkMjBhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0KQEAgLTM3LDcgKzM3LDYgQEAKICNpbXBvcnQgIkZyYW1lVmlldy5o
IgogI2ltcG9ydCAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4
dC5oIgotI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBvcnQgIkhUTUxBdHRhY2ht
ZW50RWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTElucHV0RWxlbWVudC5oIgogI2ltcG9ydCAiSFRN
TE1lZGlhRWxlbWVudC5oIgpAQCAtMjk3Myw1MCArMjk3Miw2IEBAIGJvb2wgUmVuZGVyVGhlbWVN
YWM6OnBhaW50QXR0YWNobWVudChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBjb25zdCBQ
YWludEluCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCi1zdGF0aWMg
Q0dDb2xvclJlZiBjb2xvckZvclN0eWxlKERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlLCBi
b29sIHVzZURhcmtNb2RlKQotewotICAgIHN3aXRjaCAoc3R5bGUpIHsKLSAgICAvLyBSZWQuCi0g
ICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmc6Ci0gICAgICAgIHJldHVy
biBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyAyNTUsIDE0MCwgMTQwLCAyMTcg
fSA6IENvbG9yIHsgMjU1LCA1OSwgNDgsIDE5MSB9KTsKLSAgICAvLyBCbHVlLgotICAgIGNhc2Ug
RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkRpY3RhdGlvbkFsdGVybmF0aXZlczoKLSAgICBjYXNl
IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpUZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRo
QWx0ZXJuYXRpdmVzOgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkF1dG9jb3Jy
ZWN0aW9uUmVwbGFjZW1lbnQ6Ci0gICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtN
b2RlID8gQ29sb3IgeyA0MCwgMTQ1LCAyNTUsIDIxNyB9IDogQ29sb3IgeyAwLCAxMjIsIDI1NSwg
MTkxIH0pOwotICAgIC8vIEdyZWVuLgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6
OkdyYW1tYXI6Ci0gICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29s
b3IgeyA1MCwgMjE1LCA3NSwgMjE3IH0gOiBDb2xvciB7IDI1LCAxNzUsIDUwLCAxOTEgfSk7Ci0g
ICAgfQotfQotCi12b2lkIFJlbmRlclRoZW1lTWFjOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2Vy
KGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0
eWxlIHN0eWxlKQotewotICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgYXV0byBjaXJjbGVDb2xvciA9IGNvbG9yRm9yU3R5bGUoc3R5bGUs
IHJlbmRlcmVyLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgJiYgcmVuZGVyZXIucGFnZSgp
LnVzZURhcmtBcHBlYXJhbmNlKCkpOwotCi0gICAgLy8gQ2VudGVyIHRoZSB1bmRlcmxpbmUgYW5k
IGVuc3VyZSB3ZSBvbmx5IGRyYXcgZW50aXJlcyBkb3RzLgotICAgIEZsb2F0UG9pbnQgb2Zmc2V0
UG9pbnQgPSBvcmlnaW47Ci0gICAgZmxvYXQgd2lkdGhNb2QgPSBmbW9kZih3aWR0aCwgY01pc3Nw
ZWxsaW5nTGluZVBhdHRlcm5XaWR0aCk7Ci0gICAgaWYgKGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJu
V2lkdGggLSB3aWR0aE1vZCA+IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGgpIHsKLSAg
ICAgICAgZmxvYXQgZ2FwSW5jbHVkZVdpZHRoID0gMDsKLSAgICAgICAgaWYgKHdpZHRoID4gY01p
c3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCkKLSAgICAgICAgICAgIGdhcEluY2x1ZGVXaWR0aCA9
IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGg7Ci0gICAgICAgIG9mZnNldFBvaW50Lm1v
dmUoZmxvb3IoKHdpZHRoTW9kICsgZ2FwSW5jbHVkZVdpZHRoKSAvIDIpLCAwKTsKLSAgICAgICAg
d2lkdGggLT0gd2lkdGhNb2Q7Ci0gICAgfQotCi0gICAgQ0dDb250ZXh0UmVmIGN0eCA9IGNvbnRl
eHQucGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVy
IHsgY3R4IH07Ci0gICAgQ0dDb250ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9yKGN0eCwgY2lyY2xl
Q29sb3IpOwotICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHggKz0gY01pc3NwZWxsaW5n
TGluZVBhdHRlcm5XaWR0aCkKLSAgICAgICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChjdHgs
IENHUmVjdE1ha2Uob2Zmc2V0UG9pbnQueCgpICsgeCwgb2Zmc2V0UG9pbnQueSgpLCBjTWlzc3Bl
bGxpbmdMaW5lVGhpY2tuZXNzLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzKSk7Ci0gICAgQ0dD
b250ZXh0U2V0Q29tcG9zaXRlT3BlcmF0aW9uKGN0eCwga0NHQ29tcG9zaXRlU292ZXIpOwotICAg
IENHQ29udGV4dEZpbGxQYXRoKGN0eCk7Ci19Ci0KIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnVzaW5n
RGFya0FwcGVhcmFuY2UoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAogewogI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347733</attachid>
            <date>2018-08-21 17:03:40 -0700</date>
            <delta_ts>2018-08-21 18:00:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188828-20180821170339.patch</filename>
            <type>text/plain</type>
            <size>45742</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M3ZDQ2ZDc3ZmQ5ZjQ0
NTMxMjk1YjIwMTE2NTI3NDM2NmViZmY0NS4uMTI2MDNjZGU2NWM0NDVmZmQ2NGUxNWRiY2JiOGY2
OTU5ZDk5OGVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTA4LTIxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBTaGFyZSBzcGVsbGluZyBk
b3QgcGFpbnRpbmcgY29kZSBiZXR3ZWVuIE1hYyBhbmQgaU9TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg4MjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbG9vayBvZiB0aGUgc3BlbGxpbmcgZG90
cyBvbiBNYWMgYW5kIGlPUyBhcmUgaWRlbnRpY2FsIHVwIHRvIGNvbG9yLiBUb3dhcmRzIG1ha2lu
ZyB0aGUKKyAgICAgICAgc3BlbGxpbmcgZG90cyBpbiBXZWJLaXQgb24gaU9TIG1vcmUgY2xvc2Vs
eSBtYXRjaCB0aGUgbG9vayBvZiB0aGUgc3BlbGxpbmcgZG90cyBpbiBVSUtpdC0KKyAgICAgICAg
YXBwcywgc3RhbmRhcmRpemUgb24gdXNpbmcgdGhlIHNhbWUgcGFpbnRpbmcgY29kZSBmb3IgYm90
aCBNYWMgYW5kIGlPUy4KKworICAgICAgICBDdXJyZW50bHkgaU9TIHVzZXMgYml0bWFwcyB0byBy
ZW5kZXIgdGhlIHNwZWxsaW5nIGRvdHMgYW5kIGRvZXMgbm90IGFjY291bnQgZm9yIHVzZXIvQ1NT
CisgICAgICAgIHpvb21pbmcuIEFzIGEgcmVzdWx0LCB0aGUgc3BlbGxpbmcgZG90cyBvbiBpT1Mg
cmVuZGVyIHdpdGggYXJ0aWZhY3RzIChlLmcuIHRydW5jYXRlZCBkb3RzKS4KKyAgICAgICAgQSBz
aWRlIGJlbmVmaXQgb2YgaGF2aW5nIGlPUyBzaGFyZSB0aGUgc2FtZSBwYWludGluZyBjb2RlIGFz
IE1hYyBpcyB0aGF0IGlPUyB3aWxsIG5vdyBwYWludAorICAgICAgICB0aGUgZG90cyBwcm9ncmFt
bWF0aWNhbGx5IGFuZCB3ZSBhdm9pZCBib3RoIHRoZSBuZWVkIHRvIHVzZSBiaXRtYXBzIGFuZCBm
aXggdGhlIGJ1Z3MgaW4KKyAgICAgICAgdGhlIHBhaW50aW5nIG9mIHRoZSBiaXRtYXAgZG90cyB3
aXRoIHJlc3BlY3QgdG8gem9vbWluZy4KKworICAgICAgICAqIFJlc291cmNlcy9EaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJj
ZXMvRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmc6IFJlbW92ZWQuCisg
ICAgICAgICogUmVzb3VyY2VzL1NwZWxsaW5nRG90LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBS
ZXNvdXJjZXMvU3BlbGxpbmdEb3RAMngucG5nOiBSZW1vdmVkLgorICAgICAgICAqIFJlc291cmNl
cy9TcGVsbGluZ0RvdEAzeC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURv
dFBhdHRlcm4pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGlj
cy5tbToKKyAgICAgICAgKFdLUmVjdEZpbGwpOiBJbmNvcnBvcmF0ZWQgdGhlIGxvZ2ljIGZyb20g
X0ZpbGxSZWN0VXNpbmdPcGVyYXRpb24oKS4KKyAgICAgICAgKF9GaWxsUmVjdFVzaW5nT3BlcmF0
aW9uKTogRGVsZXRlZDsgbW92ZWQgdGhlIGxvZ2ljIGludG8gV0tSZWN0RmlsbCgpIHNpbmNlIFdL
UmVjdEZpbGwoKQorICAgICAgICBpcyBub3cgdGhlIG9ubHkgY2FsbGVyIG9mIHRoaXMgZnVuY3Rp
b24uCisgICAgICAgIChXS1JlY3RGaWxsVXNpbmdPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAoaW1hZ2VSZXNvdXJjZVBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV0tHcmFwaGljc0NyZWF0
ZUltYWdlRnJvbUJ1bmRsZVdpdGhOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdLRHJhd1BhdHRl
cm5CaXRtYXApOiBEZWxldGVkLgorICAgICAgICAoV0tSZWxlYXNlUGF0dGVybkJpdG1hcCk6IERl
bGV0ZWQuCisgICAgICAgIChXS1NldFBhdHRlcm4pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy93YWsvV0tHcmFwaGljc0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJv
eDo6cGFpbnRQbGF0Zm9ybURvY3VtZW50TWFya2VyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDb2NvYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1t
OgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JGb3JTdHlsZSk6IE1vdmVkIGZyb20gUmVuZGVyVGhl
bWVNYWMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNvY29hOjpkcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKTogTW92ZWQgZnJvbSBSZW5kZXJUaGVtZU1hYy4gSSByZW5hbWVkCisgICAg
ICAgIHRoZSBsb2NhbCB2YXJpYWJsZSBjdHggdG8gY29udGV4dCBhbmQgZml4ZWQgYSB0eXBlIGlu
IGEgY29tbWVudCB3aGlsZSBtb3ZpbmcgdGhpcyBjb2RlLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRm9yU3R5bGUpOiBEZWxldGVkOyBtb3ZlZCB0byBjbGFz
cyBSZW5kZXJUaGVtZUNvY29hLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkOyBtb3ZlZCB0byBjbGFzcyBSZW5kZXJU
aGVtZUNvY29hLgorCiAyMDE4LTA4LTIxICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIFZpc2libGVQb3NpdGlvbiB0byBjYWxjdWxhdGUgc2Vs
ZWN0aW9uIHJhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL0RpY3Rh
dGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3Vy
Y2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0MmUxMGY4Y2E2NjcwMjBkZGRiOGJlODRmOTY4NDk1MTc0Mzg1MDYx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE4Mwp6Y21lQVNATj8ob2xIeWB1VkJx
IWlhMHZwXkVJYGM2ITNIRl5kfDd1NE5PMlo7TD40bkphMGBQbEJnM3BZNTxvJFAKeldSRDxVMjhK
cUMyOE09YTI4TiZpZiVIb1RoRWY5dGhGMXY7M3wyRTM3e3YxQCNVRko4czxyaVdhU1ctciNkNlMp
Cno+d3RtKSFAO1prKEdnbEl0ITJ+cD1gJVZgKiErUkx7TT9UMWsmSHFDXkY2KzgoKWx4QUBpYkd6
ZUNPWGNQcyFZMwphZTg9RihCen1fRlplfWpmQU89cllLYkxoKjJ+N1pgTUt1aW8KCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0
aXZlc0RvdEAyeC5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvRGljdGF0aW9uUGhyYXNl
V2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZmMzY5ZmI0ODY5ZGZmOTkwNjJiZDYwMzJjZWQyOTkwMDhhMjU3YmYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmxpdGVyYWwgMjY3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeOTYtIyohM0hH
JXZFS2c7cSZOI2FCOHdScXhQP0tPa3p2KngzODBgdAp6dlBZMEYxNEVUNjE0QmJJMUg7ZSVLPjgm
RUwjWTcrIT5hQGEyQ0VxaTRDNDhkOypZdWspbFQkdWFTVy1yPCNXb0sKej55VSM0IV4yNFAkakoq
QD1iZ1RFJUlrIXhpMGoyX2orSHEmZHFiYClOVnBleUQxUmR0cFU/TXxyJGMrVHpPZ3pqCnpibGBg
fHpWbjU0aTx2KiV2dXVDZjlVOH1RcHlFaUhsX1BVRGdUQWstVXcqKDxKe1FGalR8KjZheHBLd1Iz
Kk83Rgp6QFZkYXx6LVcrPlpFM3BuTHcmVU9BIzs3TThgOFNWRzlubVErS01lZ1pwOzdSVlghKUI8
R3xUPkc4NT1IMjJXUSUKSm12djRGTyN0QE9TaUFyTAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdC5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMv
U3BlbGxpbmdEb3QucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjFhOWI3ODhk
NDQwNjI4OTJjNWQzNzYyNjg2ODc0ZWYwNzFmNTI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgps
aXRlcmFsIDE5NQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkVJYGM2ITMtcHV3Y0BeajFreFJT
OVReeXwtTUhjKFZGY3QkbWJnWmcKejFtfnhmbHFWTFlHQn5FPkMjNVFRPHxkfTYyQmp2WlIySDYw
d0UtJVU0KTYoYXtlU2k5enR5WSVoS0sqfXBZWUdZCno7YWA5TVV3UWR8O1N2QTt8Mks0RnkkZSp2
U3JYKEk0Q0kwVkwkSDVeNVhiXmc3c3JyX1RTKkJDREd3NDdrYGtYTQpnQiV+JWtXOGc0Z1Y2PGox
NE9fQWhzRF4+VCk3OCZxb2xgOyswRGNvaG8mVyM8CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUmVzb3VyY2VzL1NwZWxsaW5nRG90QDJ4LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNl
cy9TcGVsbGluZ0RvdEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhOGUz
MWMyZGFhNTgzZTA0MzVhNTNhNGJjMWJlMzUzYjEzNTBlZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgMjU2CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeOTYtIyohM0hHJXZFS2c7
cSZOI2FCOHdScXhQP0tPa3p2KngzODBgdAp6dlBZMEYxNEVUNjE0QmJJMUglXn0tRXh0RUF2ZDBa
O1lBSnVnSDFPQmdMRmptYk1efEwrQlEhWSRCPkYhQSpWS1MKekg5MUhlXypubnQ/bjRERGkoZ1RH
ekshfmNCQ2RQZ0E2JDg0e2ojTHtnS3FtfSYxKGY2VXVNXzA9VTxPfV9TMjZlCnpvbmNMYDtXTzd6
UnRDcWZvbXRKXzg3OEVMY1Jre1dOcVheSD5VcU1mQiMmVD8oXmRTMzhPfE50YlZQd2thZjR2VQp6
e2hzOHs7Kip4I1o4cWU7Y0o8TDsmSVgoUjNQcmFNPHVtQVApeEdnM154cz5jaXhAbXp7YW5eTEJ7
VHM1b3xheDUKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvU3BlbGxpbmdE
b3RAM3gucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL1NwZWxsaW5nRG90QDN4LnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFiN2Y3YWZlNzg4OTUzMGNhN2M4NzM3ODU0
N2MzNGUwYWEwYjAyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyNzAKemNtVitw
MHJDRWNQKTxoOzNLfExrMDAwZTFOSkxUcTAwMGFDMDAwUkgxXkBzNjJEcl5zMDAwMFBiVlhRblEq
VU47CnpjVlRqNjA2fURMVnIzdm5aREQ2K1FlfE9lZDJ6e1FKT0JVeXV0YEtnUkN3QlNrK0JWZkZj
M3hXcXpzWmVyOHtRdQp6MjRONzIpUjk7T0h0LXJRc280TWxsSDFHQWFnT2FHVTtkVkx7X2xXO1dm
JXkkISMoVV8yUyslLTZUSCRtUXI2QUYKelp9Pj8/byVzUjM2IzQtdl5+OCpAPXB0Z1chfW98ZkZW
QGgyXllCOzVCblVIS2pGIWM+el92VFB6fmFJeHBxcn4rCno2fk1rbFR5fnx6UzE+PDhJSlVyWDJL
flUmdjIrKERMSk9vYyopLX1ZV3o5QylXfns0P1p1JEVrRHQhYlAwR3pCawpVMU09K3hCPiheYjA3
KnFvTTZOPCRnMCVse08jbERACgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNhMTkxZDU3NjJkZmRmNmVmNzBjMzNjZTlkZWZlMDc0
NWY3MzBiMjguLmRlM2U0MDE4YzIwMDVmZTc0ZmY1NTZiOGMxNmQwNTE3M2M4OGQxZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTU3LDcgKzU3LDYgQEAKIAkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4
dE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDFEM0NGN0YxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oICovOyB9Owog
CQkwMUQzQ0Y4NjE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDFEM0NGODAxNEJEMEEz
MDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCAqLzsgfTsKIAkJMDFEM0NGODcxNEJE
MEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMUQzQ0Y4MTE0QkQwQTMwMDBGRTk5NzAgLyogV2Vi
R0xTaGFyZWRPYmplY3QuaCAqLzsgfTsKLQkJMDFFNkMyRTQxMTk0QjI4MjAwNTA4MjFDIC8qIFNw
ZWxsaW5nRG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDFFNkMyRTMxMTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxsaW5nRG90QDJ4LnBuZyAq
LzsgfTsKIAkJMDU2MkY5NjExNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1NjJGOTYwMTU3M0Y4
OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDVGRDY5RTAxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRp
bWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MDI3Q0FEMEIxQ0JGQzAwMDg4
NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA2MDI3Q0FDMEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0
ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
NjMwLDcgKzYyOSw2IEBACiAJCTFDMTJBQzJCMUVFNzc4QUUwMDc5RTBBMCAvKiBGb250RmFtaWx5
U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzEyQUMyOTFFRTc3OEFFMDA3OUUwQTAgLyogRm9udEZhbWlseVNwZWNp
ZmljYXRpb25Db3JlVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFDMThEQTU5MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxOERBNTcxODFB
RjZBNTAwQzRFRjIyIC8qIFRleHRQYWludGVyLmggKi87IH07CiAJCTFDMjFFNTdEMTgzRUQxRkYw
MDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzIxRTU3QjE4M0VEMUZGMDAxQzI4OUQgLyogSU9TdXJmYWNlUG9v
bC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTFD
MjQxN0JBMTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjQxN0I5MTk5MkMwNDEwMEVG
OTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgKi87IH07CiAJCTFDMjRFRUE1MUM3MjlDRTQwMDgw
RjhGQyAvKiBGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUMyNEVFQTMxQzcyOUNFNDAwODBGOEZDIC8qIEZvbnRGYWNlU2V0LmggKi87
IH07CiAJCTFDMjRFRUE5MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0ZvbnRGYWNlU2V0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI0RUVBNzFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oICovOyB9OwogCQkxQzY2MjYxMTFDNkU3Q0E2MDBB
QjUyN0MgLyogRm9udEZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDNjYyNjBGMUM2RTdDQTYwMEFCNTI3QyAvKiBGb250RmFjZS5oICovOyB9OwpA
QCAtMzg2Myw3ICszODYxLDYgQEAKIAkJQkU4OEUwREYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVv
VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJF
ODhFMEQzMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkU4OEUwRTExNzE1RDJBMjAwNjU4RDk4
IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJFODhFMEQ1MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5j
cHAgKi87IH07CiAJCUJFODhFMEUyMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkU4OEUwRDYx
NzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmggKi87IH07Ci0JCUJFOEM3NTMxMTA2
ODEzMjQwMDFFOTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEM3NTMwMTA2ODEzMjQwMDFFOTNGNSAvKiBTcGVs
bGluZ0RvdC5wbmcgKi87IH07CiAJCUJFOEVGMDQzMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlv
VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJF
OEVGMDNGMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCAqLzsgfTsKIAkJQkU4RUYw
NDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEVGMDQxMTcxQzhGRjkwMDlCNDhDMyAv
KiBKU0F1ZGlvVHJhY2tMaXN0LmggKi87IH07CiAJCUJFOEVGMDRCMTcxQzkwMTQwMDlCNDhDMyAv
KiBKU1ZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJFOEVGMDQ3MTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2suaCAqLzsgfTsK
QEAgLTQxMjQsOCArNDEyMSw2IEBACiAJCUQwMDBFQkEzMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFt
ZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVN
YWNoaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRDAwMEVEMjgxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDAwRUQyNjExQzFCOUNEMDBD
NDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxp
dFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlEMDJCNjRCMjE0MDg5RTU2
MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdC5wbmcgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwMkI2NEIwMTQwODlF
NTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyAqLzsg
fTsKLQkJRDAyQjY0QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRl
cm5hdGl2ZXNEb3RAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEMDJCNjRCMTE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0
aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgKi87IH07CiAJCUQwNUNFRDJBMEE0MEJCMkMwMEM1QUYz
OCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQwNUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0Nv
bW1hbmQuaCAqLzsgfTsKIAkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1h
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggKi87IH07
CiAJCUQwN0RFQUJBMEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDA3REVBQjgwQTM2NTU0
QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggKi87IH07CkBAIC00Nzk4LDcgKzQ3OTMs
NiBAQAogCQlFQkY1MTIxRDE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFCMTY5
NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5oICovOyB9OwogCQlFQ0E2ODBDNzFF
Njc3MjQ1MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBDNjFFNjc3MjQ1MDA3MzFEMjAgLyogU3Ry
aW5nVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRUNDREI4ODExRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVudE9ic2VydmF0aW9u
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEVDQ0RCODgwMUU0QjhDNTkwMEExQUVBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlvbkludGVybmFs
LmggKi87IH07Ci0JCUVDQ0RCODg3MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQ0RC
ODg2MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50ZXJuYWwuaCAqLzsgfTsKIAkJRUQy
QkE4M0MwOUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFRDJCQTgzQjA5QTI0QjkxMDA2QzBBQzQg
LyogRG9jdW1lbnRNYXJrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29sb3JNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERTNBNEZGMEM3QTQz
MDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUVERUM5ODAzMEFFRDdFMTcwMDU5MTM3RiAvKiBXZWJDb3JlUHJl
Zml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFREVD
OTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oICovOyB9OwpAQCAtNTE1Nyw3
ICs1MTUxLDYgQEAKIAkJMDFEM0NGN0YxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9i
amVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbnRleHRPYmpl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDFEM0NGODAxNEJEMEEzMDAwRkU5
OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdMU2hhcmVkT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDFEM0NGODExNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU2hhcmVkT2JqZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTAxRTZDMkUzMTE5NEIyODIwMDUwODIxQyAvKiBTcGVs
bGluZ0RvdEAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiU3BlbGxpbmdEb3RAMngucG5nIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3Jt
TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1MYXllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNUZENjlERjEyODQ1RDQzMDBCMkJFQjMg
LyogRE9NVGltZVN0YW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVRp
bWVTdGFtcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNjAyN0NBQzBCMUNCRkMw
MDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTYyOTcsNyArNjI5MCw2IEBACiAJCTFDMThEQTU3MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0UGFp
bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0UGFpbnRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIxRTU3QTE4M0VEMUZGMDAxQzI4OUQgLyog
SU9TdXJmYWNlUG9vbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
T1N1cmZhY2VQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyMUU1N0Ix
ODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFjZVBvb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSU9TdXJmYWNlUG9vbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxQzI0MTdCOTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gIlNwZWxsaW5nRG90QDN4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
MjRFRUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNldC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRm9udEZhY2VTZXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzI0RUVBMjFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEZhY2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQzI0RUVBMzFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEZhY2VTZXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDQ5LDcgKzEzMDQxLDYgQEAKIAkJQkU4OEUwRDUxNzE1
RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFZpZGVvVHJhY2tMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFODhFMEQ3MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1Ry
YWNrTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9UcmFja0xpc3QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCRThDNzUzMDEwNjgxMzI0MDAxRTkzRjUgLyog
U3BlbGxpbmdEb3QucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gU3BlbGxpbmdEb3QucG5nOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCRThFRjAzRTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNr
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9UcmFjay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFOEVGMDNGMTcxQzhGRjkwMDlCNDhD
MyAvKiBKU0F1ZGlvVHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNB
dWRpb1RyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFOEVGMDQwMTcxQzhG
RjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9UcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTM1NjEsOCArMTM1NTIsNiBAQAogCQlEMDAwRUQyNjExQzFCOUNEMDBDNDc3
MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3ViZnJhbWVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUIx
MEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BhY2VTcGxpdFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwMUEyN0FDMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3Ry
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDAyQjY0QjAxNDA4OUU1NjAwNkVGQTIx
IC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gRGlj
dGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdC5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUQwMkI2NEIxMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRo
QWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJEaWN0YXRpb25QaHJhc2VXaXRoQWx0
ZXJuYXRpdmVzRG90QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMzZE
RDhEMjA4RkZDMEMwMEY5RjRCMiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyODBBNDBCQjJDMDBD
NUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0NTM3LDcgKzE0NTI2LDYgQEAKIAkJRUNBNjgwQzYxRTY3NzI0NTAwNzMxRDIwIC8qIFN0
cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdV
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNBNjgwQzgxRTY3NzMw
QjAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFN0cmluZ1V0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRUNDREI4ODAxRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVudE9ic2VydmF0aW9u
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZW50T2Jz
ZXJ2YXRpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFQ0NEQjg4
NjFFNEJCNjNGMDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLR3JhcGhpY3NJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFRDJCQTgzQjA5QTI0QjkxMDA2QzBBQzQgLyogRG9jdW1lbnRNYXJrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRNYXJrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUQ1MDFEQzUwQjI0OUYyOTAwQUUxOEQ5IC8qIEVk
aXRvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFZGl0
b3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVERTNBNEZGMEM3QTQzMDYw
MDk1NkEzNyAvKiBDb2xvck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b2xvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkyNTksMTMgKzE5MjQ3
LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJENTBBNEI1MUNFMTBFMDAwMDE5ODA0OSAvKiBB
dHRhY2htZW50UGxhY2Vob2xkZXIucG5nICovLAogCQkJCTJENTBBNEI2MUNFMTBFMDAwMDE5ODA0
OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5nICovLAotCQkJCUQwMkI2NEIwMTQwODlF
NTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyAqLywK
LQkJCQlEMDJCNjRCMTE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVy
bmF0aXZlc0RvdEAyeC5wbmcgKi8sCiAJCQkJRTU5REQ0QjcyMTA5ODI4NTAwM0M4QjQ3IC8qIExp
c3RCdXR0b25BcnJvdy5wbmcgKi8sCiAJCQkJRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExp
c3RCdXR0b25BcnJvd0AyeC5wbmcgKi8sCi0JCQkJQkU4Qzc1MzAxMDY4MTMyNDAwMUU5M0Y1IC8q
IFNwZWxsaW5nRG90LnBuZyAqLywKLQkJCQkwMUU2QzJFMzExOTRCMjgyMDA1MDgyMUMgLyogU3Bl
bGxpbmdEb3RAMngucG5nICovLAotCQkJCTFDMjQxN0I5MTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVs
bGluZ0RvdEAzeC5wbmcgKi8sCiAJCQkpOwogCQkJbmFtZSA9IGltYWdlczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTM3NSw3ICsyMTM1OCw2IEBACiAJCQkJRUNDREI4ODAxRTRC
OEM1OTAwQTFBRUE2IC8qIFdLQ29udGVudE9ic2VydmF0aW9uSW50ZXJuYWwuaCAqLywKIAkJCQlB
MTQ4MzJBNDE4N0Y1MDg3MDBEQTYzQTYgLyogV0tHcmFwaGljcy5oICovLAogCQkJCUExNDgzMkE1
MTg3RjUwODcwMERBNjNBNiAvKiBXS0dyYXBoaWNzLm1tICovLAotCQkJCUVDQ0RCODg2MUU0QkI2
M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50ZXJuYWwuaCAqLywKIAkJCQlBMTQ4MzJBNjE4N0Y1
MDg3MDBEQTYzQTYgLyogV0tUeXBlcy5oICovLAogCQkJCUExNDgzMkE3MTg3RjUwODcwMERBNjNB
NiAvKiBXS1V0aWxpdGllcy5jICovLAogCQkJCUExNDgzMkE4MTg3RjUwODcwMERBNjNBNiAvKiBX
S1V0aWxpdGllcy5oICovLApAQCAtMzEwNzEsNyArMzEwNTMsNiBAQAogCQkJCUExNDgzMkJFMTg3
RjY0Q0MwMERBNjNBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRUNDREI4ODExRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVudE9ic2VydmF0aW9uSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDgzMkJGMTg3RjY1MkMwMERBNjNBNiAvKiBXS0dy
YXBoaWNzLmggaW4gSGVhZGVycyAqLywKLQkJCQlFQ0NEQjg4NzFFNEJCNjNGMDBBMUFFQTYgLyog
V0tHcmFwaGljc0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ4MzJDMTE4N0Y2NTdB
MDBEQTYzQTYgLyogV0tUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMyQzMxODdGNjVE
RjAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ4MzJDNDE4
N0Y2NjNDMDBEQTYzQTYgLyogV0tWaWV3LmggaW4gSGVhZGVycyAqLywKQEAgLTMxMjk2LDggKzMx
Mjc3LDYgQEAKIAkJCQkyRDUwQTRCODFDRTEwRTAwMDAxOTgwNDkgLyogQXR0YWNobWVudFBsYWNl
aG9sZGVyQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTFBQTlBQjkxRDIzOTExNTAwRkVB
REIzIC8qIENvbnRlbnRGaWx0ZXJCbG9ja2VkUGFnZS5odG1sIGluIFJlc291cmNlcyAqLywKIAkJ
CQlBMTFFOEMwNTFCMUUyOEY0MDAwM0E3QzcgLyogY29weUN1cnNvci5wbmcgaW4gUmVzb3VyY2Vz
ICovLAotCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRo
QWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRDAyQjY0QjMxNDA4OUU1
NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RAMngucG5nIGlu
IFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcgLyogSUROU2NyaXB0
V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMkQ5RjBFMTMxNEZGMUNCRjAwQkEw
RkY3IC8qIGxpbmVhclNSR0IuaWNjIGluIFJlc291cmNlcyAqLywKIAkJCQlFNTlERDRCODIxMDk4
Mjg3MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyBpbiBSZXNvdXJjZXMgKi8sCkBAIC0z
MTMxOCw5ICszMTI5Nyw2IEBACiAJCQkJQTExRThDMDcxQjFFMjhGRTAwMDNBN0M3IC8qIG5vcnRo
RWFzdFNvdXRoV2VzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCUExMUU4
QzA4MUIxRTI5MDIwMDAzQTdDNyAvKiBub3J0aFNvdXRoUmVzaXplQ3Vyc29yLnBuZyBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkJQTExRThDMDkxQjFFMjkwNzAwMDNBN0M3IC8qIG5vcnRoV2VzdFNvdXRo
RWFzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCUJFOEM3NTMxMTA2ODEz
MjQwMDFFOTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTAxRTZD
MkU0MTE5NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgaW4gUmVzb3VyY2VzICov
LAotCQkJCTFDMjQxN0JBMTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgaW4g
UmVzb3VyY2VzICovLAogCQkJCTkzMTUzQkRDMTQxOTU5QkMwMEZDRjVCRSAvKiB0ZXh0QXJlYVJl
c2l6ZUNvcm5lci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTkzNzA5MThEMTQxNkQ4NkIwMDQ3
NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lckAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJ
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KaW5kZXggYjVhOWQ2NjhmMThhNTkxOGJhMjhj
OWVkZWMwYWRlZWI3ZWRmY2QxMC4uM2IyYzM5YjI0NjA3YjIxYjhkMTAyNWY3MTM5YTMzNGRlNTQz
MDdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KQEAgLTQxLDcgKzQxLDYgQEAKICNp
ZiBQTEFURk9STShJT1MpCiAjaW1wb3J0ICJDb2xvci5oIgogI2ltcG9ydCAiV0tHcmFwaGljcy5o
IgotI2ltcG9ydCAiV0tHcmFwaGljc0ludGVybmFsLmgiCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykKQEAgLTE5NSwxOCArMTk0LDYgQEAgc3RhdGljIE5TSW1hZ2UgKmNvcnJlY3Rpb25JbWFn
ZSA9IG51bGxwdHI7CiAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0gKElPUykKLQotc3RhdGljIFJl
dGFpblB0cjxDR1BhdHRlcm5SZWY+IGNyZWF0ZURvdFBhdHRlcm4oYm9vbCYgdXNpbmdEb3QsIGNv
bnN0IGNoYXIqIHJlc291cmNlTmFtZSkKLXsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1h
Z2UgPSBhZG9wdENGKFdLR3JhcGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFtZShyZXNv
dXJjZU5hbWUpKTsKLSAgICBBU1NFUlQoaW1hZ2UpOyAvLyBpZiBpbWFnZSBpcyBub3QgYXZhaWxh
YmxlLCB3ZSB3YW50IHRvIGtub3cKLSAgICB1c2luZ0RvdCA9IHRydWU7Ci0gICAgcmV0dXJuIGFk
b3B0Q0YoV0tDcmVhdGVQYXR0ZXJuRnJvbUNHSW1hZ2UoaW1hZ2UuZ2V0KCkpKTsKLX0KLQotI2Vu
ZGlmCi0KIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNl
cygpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjI3LDE0MiArMjE0LDEwIEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBzZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZShDR0NvbnRleHRSZWYgY29udGV4
dCwgQ0dQb2ludCBwaGFzCiAgICAgQ0dDb250ZXh0U2V0UGF0dGVyblBoYXNlKGNvbnRleHQsIENH
U2l6ZU1ha2UocGhhc2UueCwgcGhhc2UueSkpOwogfQogCi0vLyBXZWJLaXQgb24gTWFjIGlzIGEg
c3RhbmRhcmQgcGxhdGZvcm0gY29tcG9uZW50LCBzbyBpdCBtdXN0IHVzZSB0aGUgc3RhbmRhcmQg
cGxhdGZvcm0gYXJ0d29yayBmb3IgdW5kZXJsaW5lLgotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHdp
ZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKKy8vIEZJWE1FOiBXZSBuZWVkIHRv
IGtlZXAgdGhpcyBmdW5jdGlvbiBzaW5jZSBpdCBpcyByZWZlcmVuY2VkIGJ5IERyYXdMaW5lRm9y
RG9jdW1lbnRNYXJrZXI6OmFwcGx5KCkuCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVG
b3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQsIERvY3VtZW50TWFya2Vy
TGluZVN0eWxlKQogewotICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSBmb3IgbWlzc3BlbGxpbmcgb3IgYmFkIGdy
YW1tYXIuCi0gICAgaW50IHBhdHRlcm5IZWlnaHQgPSBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNz
OwotICAgIGZsb2F0IHBhdHRlcm5XaWR0aCA9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGg7
Ci0KLSAgICBib29sIHVzaW5nRG90OwotI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNJbWFnZSAq
aW1hZ2U7Ci0gICAgTlNDb2xvciAqZmFsbGJhY2tDb2xvcjsKLSNlbHNlCi0gICAgQ0dQYXR0ZXJu
UmVmIGRvdFBhdHRlcm47Ci0jZW5kaWYKLSAgICBzd2l0Y2ggKHN0eWxlKSB7Ci0gICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmc6IHsKLSAgICAgICAgLy8gQ29uc3RhbnRz
IGZvciBzcGVsbGluZyBwYXR0ZXJuIGNvbG9yLgotICAgICAgICBzdGF0aWMgYm9vbCB1c2luZ0Rv
dEZvclNwZWxsaW5nID0gZmFsc2U7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgaWYgKCFz
cGVsbGluZ0ltYWdlKQotICAgICAgICAgICAgc3BlbGxpbmdJbWFnZSA9IFtmaW5kSW1hZ2UoQCJO
U1NwZWxsaW5nRG90IiwgQCJTcGVsbGluZ0RvdCIsIHVzaW5nRG90Rm9yU3BlbGxpbmcpIHJldGFp
bl07Ci0gICAgICAgIGltYWdlID0gc3BlbGxpbmdJbWFnZTsKLSAgICAgICAgZmFsbGJhY2tDb2xv
ciA9IFtOU0NvbG9yIHJlZENvbG9yXTsKLSNlbHNlCi0gICAgICAgIHN0YXRpYyBDR1BhdHRlcm5S
ZWYgc3BlbGxpbmdQYXR0ZXJuID0gY3JlYXRlRG90UGF0dGVybih1c2luZ0RvdEZvclNwZWxsaW5n
LCAiU3BlbGxpbmdEb3QiKS5sZWFrUmVmKCk7Ci0gICAgICAgIGRvdFBhdHRlcm4gPSBzcGVsbGlu
Z1BhdHRlcm47Ci0jZW5kaWYKLSAgICAgICAgdXNpbmdEb3QgPSB1c2luZ0RvdEZvclNwZWxsaW5n
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHls
ZTo6R3JhbW1hcjogewotI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgIC8vIENvbnN0YW50cyBm
b3IgZ3JhbW1hciBwYXR0ZXJuIGNvbG9yLgotICAgICAgICBzdGF0aWMgYm9vbCB1c2luZ0RvdEZv
ckdyYW1tYXIgPSBmYWxzZTsKLSAgICAgICAgaWYgKCFncmFtbWFySW1hZ2UpCi0gICAgICAgICAg
ICBncmFtbWFySW1hZ2UgPSBbZmluZEltYWdlKEAiTlNHcmFtbWFyRG90IiwgQCJHcmFtbWFyRG90
IiwgdXNpbmdEb3RGb3JHcmFtbWFyKSByZXRhaW5dOwotICAgICAgICB1c2luZ0RvdCA9IGdyYW1t
YXJJbWFnZTsKLSAgICAgICAgaW1hZ2UgPSBncmFtbWFySW1hZ2U7Ci0gICAgICAgIGZhbGxiYWNr
Q29sb3IgPSBbTlNDb2xvciBncmVlbkNvbG9yXTsKLSAgICAgICAgYnJlYWs7Ci0jZWxzZQotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0gICAg
fQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICAvLyBUbyBzdXBwb3J0IGNvcnJlY3Rpb24gcGFuZWwu
Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNl
bWVudDoKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpEaWN0YXRpb25BbHRlcm5h
dGl2ZXM6IHsKLSAgICAgICAgLy8gQ29uc3RhbnRzIGZvciBzcGVsbGluZyBwYXR0ZXJuIGNvbG9y
LgotICAgICAgICBzdGF0aWMgYm9vbCB1c2luZ0RvdEZvclNwZWxsaW5nID0gZmFsc2U7Ci0gICAg
ICAgIGlmICghY29ycmVjdGlvbkltYWdlKQotICAgICAgICAgICAgY29ycmVjdGlvbkltYWdlID0g
W2ZpbmRJbWFnZShAIk5TQ29ycmVjdGlvbkRvdCIsIEAiQ29ycmVjdGlvbkRvdCIsIHVzaW5nRG90
Rm9yU3BlbGxpbmcpIHJldGFpbl07Ci0gICAgICAgIHVzaW5nRG90ID0gdXNpbmdEb3RGb3JTcGVs
bGluZzsKLSAgICAgICAgaW1hZ2UgPSBjb3JyZWN0aW9uSW1hZ2U7Ci0gICAgICAgIGZhbGxiYWNr
Q29sb3IgPSBbTlNDb2xvciBibHVlQ29sb3JdOwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5k
aWYKLSNpZiBQTEFURk9STShJT1MpCi0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6
VGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlczogewotICAgICAgICBz
dGF0aWMgYm9vbCB1c2luZ0RvdEZvckRpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXMgPSBm
YWxzZTsKLSAgICAgICAgc3RhdGljIENHUGF0dGVyblJlZiBkaWN0YXRpb25QaHJhc2VXaXRoQWx0
ZXJuYXRpdmVzUGF0dGVybiA9IGNyZWF0ZURvdFBhdHRlcm4odXNpbmdEb3RGb3JEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzLCAiRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0Rv
dCIpLmxlYWtSZWYoKTsKLSAgICAgICAgZG90UGF0dGVybiA9IGRpY3RhdGlvblBocmFzZVdpdGhB
bHRlcm5hdGl2ZXNQYXR0ZXJuOwotICAgICAgICB1c2luZ0RvdCA9IHVzaW5nRG90Rm9yRGljdGF0
aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlczsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykKLSAgICBkZWZhdWx0OgotI2lmIFBMQVRGT1JNKElPUykKLSAgICAg
ICAgLy8gRklYTUU6IFNob3VsZCByZW1vdmUgZGVmYXVsdCBjYXNlIHNvIHdlIGdldCBjb21waWxl
LXRpbWUgZXJyb3JzLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgRmxvYXRQb2lu
dCBvZmZzZXRQb2ludCA9IHBvaW50OwotCi0gICAgLy8gTWFrZSBzdXJlIHRvIGRyYXcgb25seSBj
b21wbGV0ZSBkb3RzLgotICAgIGlmICh1c2luZ0RvdCkgewotICAgICAgICAvLyBhbGxvdyBzbGln
aHRseSBtb3JlIGNvbnNpZGVyaW5nIHRoYXQgdGhlIHBhdHRlcm4gZW5kcyB3aXRoIGEgdHJhbnNw
YXJlbnQgcGl4ZWwKLSAgICAgICAgZmxvYXQgd2lkdGhNb2QgPSBmbW9kZih3aWR0aCwgcGF0dGVy
bldpZHRoKTsKLSAgICAgICAgaWYgKHBhdHRlcm5XaWR0aCAtIHdpZHRoTW9kID4gY01pc3NwZWxs
aW5nTGluZVBhdHRlcm5HYXBXaWR0aCkgewotICAgICAgICAgICAgZmxvYXQgZ2FwSW5jbHVkZVdp
ZHRoID0gMDsKLSAgICAgICAgICAgIGlmICh3aWR0aCA+IHBhdHRlcm5XaWR0aCkKLSAgICAgICAg
ICAgICAgICBnYXBJbmNsdWRlV2lkdGggPSBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRo
OwotICAgICAgICAgICAgb2Zmc2V0UG9pbnQubW92ZShmbG9vcigod2lkdGhNb2QgKyBnYXBJbmNs
dWRlV2lkdGgpIC8gMiksIDApOwotICAgICAgICAgICAgd2lkdGggLT0gd2lkdGhNb2Q7Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgCi0gICAgLy8gRklYTUU6IFRoaXMgY29kZSBzaG91bGQgbm90IHVz
ZSBOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dAotICAgIC8vIEluIG9yZGVyIHRvIHJl
bW92ZSB0aGlzIHJlcXVpcmVtZW50IHdlIHdpbGwgbmVlZCB0byB1c2UgQ0dQYXR0ZXJuIGluc3Rl
YWQgb2YgTlNDb2xvcgotICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgc2hvdWxkIG5vdCBiZSB1c2lu
ZyBzZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZSwgYXMgdGhpcyBhcHByb2FjaCBpcyB3cm9uZwot
ICAgIC8vIGZvciB0cmFuc2Zvcm1zLgotCi0gICAgLy8gRHJhdyB1bmRlcmxpbmUuCi0gICAgQ0dD
b250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBDR0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIgeyBjb250ZXh0IH07Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAg
V0tTZXRQYXR0ZXJuKGNvbnRleHQsIGRvdFBhdHRlcm4sIFlFUywgWUVTKTsKLSNlbmRpZgotCi0g
ICAgc2V0UGF0dGVyblBoYXNlSW5Vc2VyU3BhY2UoY29udGV4dCwgb2Zmc2V0UG9pbnQpOwotCi0g
ICAgQ0dSZWN0IGRlc3RpbmF0aW9uUmVjdCA9IENHUmVjdE1ha2Uob2Zmc2V0UG9pbnQueCgpLCBv
ZmZzZXRQb2ludC55KCksIHdpZHRoLCBwYXR0ZXJuSGVpZ2h0KTsKLSNpZiAhUExBVEZPUk0oSU9T
KQotICAgIGlmIChpbWFnZSkgewotICAgICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNvbnRleHQs
IGRlc3RpbmF0aW9uUmVjdCk7Ci0KLSAgICAgICAgLy8gV2UgZXhwbGljaXRseSBmbGlwIGNvb3Jk
aW5hdGVzIHNvIGFzIHRvIGVuc3VyZSB3ZSBwYWludCB0aGUgaW1hZ2UgcmlnaHQtc2lkZSB1cC4g
V2UgZG8gdGhpcyBiZWNhdXNlCi0gICAgICAgIC8vIC1bTlNJbWFnZSBDR0ltYWdlRm9yUHJvcG9z
ZWRSZWN0OmNvbnRleHQ6aGludHM6XSBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGUgcmV0dXJu
ZWQgaW1hZ2Ugd2lsbCByZXNwZWN0Ci0gICAgICAgIC8vIGFueSB0cmFuc2Zvcm1zIGFwcGxpZWQg
dG8gdGhlIGNvbnRleHQgb3IgYW55IHNwZWNpZmllZCBoaW50cy4KLSAgICAgICAgQ0dDb250ZXh0
VHJhbnNsYXRlQ1RNKGNvbnRleHQsIDAsIHBhdHRlcm5IZWlnaHQpOwotICAgICAgICBDR0NvbnRl
eHRTY2FsZUNUTShjb250ZXh0LCAxLCAtMSk7Ci0KLSAgICAgICAgTlNSZWN0IGRvdFJlY3QgPSBO
U01ha2VSZWN0KG9mZnNldFBvaW50LngoKSwgcGF0dGVybkhlaWdodCAtIG9mZnNldFBvaW50Lnko
KSwgcGF0dGVybldpZHRoLCBwYXR0ZXJuSGVpZ2h0KTsgLy8gQWRqdXN0IHkgcG9zaXRpb24gYXMg
d2UgZmxpcHBlZCBjb29yZGluYXRlcy4KLQotICAgICAgICAvLyBGSVhNRTogUmF0aGVyIHRoYW4g
Z2V0dGluZyB0aGUgTlNJbWFnZSBhbmQgdGhlbiBwaWNraW5nIHRoZSBDR0ltYWdlIGZyb20gaXQs
IHdlIHNob3VsZCBkbyB3aGF0IGlPUyBkb2VzIGFuZAotICAgICAgICAvLyBqdXN0IGxvYWQgdGhl
IENHSW1hZ2UgaW4gdGhlIGZpcnN0IHBsYWNlLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgICAgICBDR0ltYWdlUmVmIGNnSW1hZ2UgPSBbaW1hZ2UgQ0dJbWFnZUZvclBy
b3Bvc2VkUmVjdDomZG90UmVjdCBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0Nv
bnRleHRXaXRoR3JhcGhpY3NQb3J0OmNvbnRleHQgZmxpcHBlZDpOT10gaGludHM6bnVsbHB0cl07
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIENHQ29udGV4dERyYXdUaWxl
ZEltYWdlKGNvbnRleHQsIE5TUmVjdFRvQ0dSZWN0KGRvdFJlY3QpLCBjZ0ltYWdlKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3JXaXRoQ29sb3IoY29udGV4dCwg
W2ZhbGxiYWNrQ29sb3IgQ0dDb2xvcl0pOwotICAgICAgICBDR0NvbnRleHRGaWxsUmVjdChjb250
ZXh0LCBkZXN0aW5hdGlvblJlY3QpOwotICAgIH0KLSNlbHNlCi0gICAgV0tSZWN0RmlsbFVzaW5n
T3BlcmF0aW9uKGNvbnRleHQsIGRlc3RpbmF0aW9uUmVjdCwga0NHQ29tcG9zaXRlU292ZXIpOwot
I2VuZGlmCisgICAgLy8gQ29jb2EgcGxhdGZvcm0gdXNlIHRoZSB0aGVtZSB0byBwYWludCB0aGUg
cGxhdGZvcm0gZG9jdW1lbnQgbWFya2Vycy4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0dyYXBoaWNzLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0dyYXBoaWNzLm1tCmluZGV4IDY4
ZWI2ZGVlN2I2YzcyY2RkZTc5Y2JhYzkxZjZlMjVmNzAxYTQ2MDguLmRmYzZlMGVlMzVmN2Y4ZjQ5
ZmNkNjA5MzAyYjc0ZDMxYzk2MGJlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy93YWsvV0tHcmFwaGljcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3Mvd2FrL1dLR3JhcGhpY3MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMTYgKzI1LDExIEBACiAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV0tHcmFwaGljcy5oIgotI2ltcG9ydCAiV0tH
cmFwaGljc0ludGVybmFsLmgiCiAKICNpZiBQTEFURk9STShJT1MpCiAKLSNpbXBvcnQgIkZvbnRD
YXNjYWRlLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgogI2ltcG9ydCAiV2ViQ29yZVRo
cmVhZEludGVybmFsLmgiCi0jaW1wb3J0IDxJbWFnZUlPL0ltYWdlSU8uaD4KICNpbXBvcnQgPHBh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+Ci0jaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01NiwyOCArNTEsMTIgQEAgc3RhdGlj
IGlubGluZSB2b2lkIF9GaWxsUmVjdHNVc2luZ09wZXJhdGlvbihDR0NvbnRleHRSZWYgY29udGV4
dCwgY29uc3QgQ0dSZWN0KgogICAgIENHQ29udGV4dFNldENvbXBvc2l0ZU9wZXJhdGlvbihjb250
ZXh0LCBvbGRPcCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfRmlsbFJlY3RVc2luZ09wZXJh
dGlvbihDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IHJlY3QsIENHQ29tcG9zaXRlT3BlcmF0
aW9uIG9wKQotewotICAgIGlmIChyZWN0LnNpemUud2lkdGggPiAwICYmIHJlY3Quc2l6ZS5oZWln
aHQgPiAwKSB7Ci0gICAgICAgIF9GaWxsUmVjdHNVc2luZ09wZXJhdGlvbiAoY29udGV4dCwgJnJl
Y3QsIDEsIG9wKTsKLSAgICB9Ci19Ci0KIHZvaWQgV0tSZWN0RmlsbChDR0NvbnRleHRSZWYgY29u
dGV4dCwgQ0dSZWN0IGFSZWN0KQogewogICAgIGlmIChhUmVjdC5zaXplLndpZHRoID4gMCAmJiBh
UmVjdC5zaXplLmhlaWdodCA+IDApIHsKICAgICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250
ZXh0KTsKLSAgICAgICAgX0ZpbGxSZWN0VXNpbmdPcGVyYXRpb24oY29udGV4dCwgYVJlY3QsIGtD
R0NvbXBvc2l0ZUNvcHkpOwotICAgICAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQp
OwotICAgIH0KLX0KLQotdm9pZCBXS1JlY3RGaWxsVXNpbmdPcGVyYXRpb24oQ0dDb250ZXh0UmVm
IGNvbnRleHQsIENHUmVjdCBhUmVjdCwgV0tDb21wb3NpdGVPcGVyYXRpb24gY29tcG9zaXRlT3Bl
cmF0aW9uKQotewotICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihXS0NvbXBvc2l0ZU9wZXJhdGlv
bikgPT0gc2l6ZW9mKENHQ29tcG9zaXRlT3BlcmF0aW9uKSwgIldLQ29tcG9zaXRlT3BlcmF0aW9u
IG11c3QgYmUgdGhlIHNhbWUgc2l6ZSBhcyBDR0NvbXBvc2l0ZU9wZXJhdGlvbi4iKTsKLSAgICBp
ZiAoYVJlY3Quc2l6ZS53aWR0aCA+IDAgJiYgYVJlY3Quc2l6ZS5oZWlnaHQgPiAwLjApIHsKLSAg
ICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKLSAgICAgICAgX0ZpbGxSZWN0VXNp
bmdPcGVyYXRpb24oY29udGV4dCwgYVJlY3QsIHN0YXRpY19jYXN0PENHQ29tcG9zaXRlT3BlcmF0
aW9uPihjb21wb3NpdGVPcGVyYXRpb24pKTsKKyAgICAgICAgaWYgKGFSZWN0LnNpemUud2lkdGgg
PiAwICYmIGFSZWN0LnNpemUuaGVpZ2h0ID4gMCkKKyAgICAgICAgICAgIF9GaWxsUmVjdHNVc2lu
Z09wZXJhdGlvbihjb250ZXh0LCAmYVJlY3QsIDEsIGtDR0NvbXBvc2l0ZUNvcHkpOwogICAgICAg
ICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOwogICAgIH0KIH0KQEAgLTk0LDgzICs3
Myw0IEBAIENHQ29udGV4dFJlZiBXS0dldEN1cnJlbnRHcmFwaGljc0NvbnRleHQodm9pZCkKICAg
ICByZXR1cm4gdGhyZWFkQ29udGV4dC0+Y3VycmVudENHQ29udGV4dDsKIH0KIAotc3RhdGljIE5T
U3RyaW5nICppbWFnZVJlc291cmNlUGF0aChjb25zdCBjaGFyKiBpbWFnZUZpbGUsIHVuc2lnbmVk
IHNjYWxlRmFjdG9yKQotewotICAgIE5TU3RyaW5nICpmaWxlTmFtZSA9IHNjYWxlRmFjdG9yID09
IDEgPyBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6aW1hZ2VGaWxlXSA6IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiJXNAJWR4IiwgaW1hZ2VGaWxlLCBzY2FsZUZhY3Rvcl07Ci0j
aWYgUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKLSAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVu
ZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFwcGxlLldlYkNvcmUiXTsKLSAgICByZXR1
cm4gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5hbWUgb2ZUeXBlOkAicG5nIl07Ci0jZWxz
ZQotICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8vcHJvYmxlbS83NzgwNjY1PiBDRkJ1bmRs
ZUNvcHlSZXNvdXJjZVVSTCB0YWtlcyBhIGxvbmcgdGltZSBvbiBpUGhvbmUgM0cuCi0gICAgTlNT
dHJpbmcgKmltYWdlRGlyZWN0b3J5ID0gQCIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvV2ViQ29yZS5mcmFtZXdvcmsiOwotICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVALyVALnBuZyIsIGltYWdlRGlyZWN0b3J5LCBmaWxlTmFtZV07Ci0jZW5kaWYKLX0K
LQotQ0dJbWFnZVJlZiBXS0dyYXBoaWNzQ3JlYXRlSW1hZ2VGcm9tQnVuZGxlV2l0aE5hbWUoY29u
c3QgY2hhciAqaW1hZ2VfZmlsZSkKLXsKLSAgICBpZiAoIWltYWdlX2ZpbGUpCi0gICAgICAgIHJl
dHVybiBOVUxMOwotCi0gICAgQ0dJbWFnZVJlZiBpbWFnZSA9IG51bGxwdHI7Ci0gICAgTlNEYXRh
ICppbWFnZURhdGEgPSBudWxscHRyOwotICAgIGZvciAodW5zaWduZWQgc2NhbGVGYWN0b3IgPSBz
Y3JlZW5TY2FsZUZhY3RvcigpOyBzY2FsZUZhY3RvciA+IDA7IC0tc2NhbGVGYWN0b3IpIHsKLSAg
ICAgICAgaW1hZ2VEYXRhID0gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZGaWxlOmltYWdlUmVz
b3VyY2VQYXRoKGltYWdlX2ZpbGUsIHNjYWxlRmFjdG9yKV07Ci0gICAgICAgIEFTU0VSVChzY2Fs
ZUZhY3RvciAhPSBzY3JlZW5TY2FsZUZhY3RvcigpIHx8IGltYWdlRGF0YSk7Ci0gICAgICAgIGlm
IChpbWFnZURhdGEpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgCi0gICAgaWYgKGlt
YWdlRGF0YSkgewotICAgICAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IGRhdGFQcm92
aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoQ0ZEYXRhKHJlaW50ZXJwcmV0
X2Nhc3Q8Q0ZEYXRhUmVmPihpbWFnZURhdGEpKSk7Ci0gICAgICAgIGltYWdlID0gQ0dJbWFnZUNy
ZWF0ZVdpdGhQTkdEYXRhUHJvdmlkZXIoZGF0YVByb3ZpZGVyLmdldCgpLCBudWxscHRyLCBOTywg
a0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGltYWdlOwot
fQotCi1zdGF0aWMgdm9pZCBXS0RyYXdQYXR0ZXJuQml0bWFwKHZvaWQgKmluZm8sIENHQ29udGV4
dFJlZiBjKSAKLXsKLSAgICBDR0ltYWdlUmVmIGltYWdlID0gKENHSW1hZ2VSZWYpaW5mbzsKLSAg
ICBDR0Zsb2F0IHNjYWxlID0gc2NyZWVuU2NhbGVGYWN0b3IoKTsKLSAgICBDR0NvbnRleHREcmF3
SW1hZ2UoYywgQ0dSZWN0TWFrZSgwLCAwLCBDR0ltYWdlR2V0V2lkdGgoaW1hZ2UpIC8gc2NhbGUs
IENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UpIC8gc2NhbGUpLCBpbWFnZSk7ICAgIAotfQotCi1zdGF0
aWMgdm9pZCBXS1JlbGVhc2VQYXR0ZXJuQml0bWFwKHZvaWQgKmluZm8pIAotewotICAgIENHSW1h
Z2VSZWxlYXNlKHJlaW50ZXJwcmV0X2Nhc3Q8Q0dJbWFnZVJlZj4oaW5mbykpOwotfQotCi1zdGF0
aWMgY29uc3QgQ0dQYXR0ZXJuQ2FsbGJhY2tzIFdLUGF0dGVybkJpdG1hcENhbGxiYWNrcyA9IAot
ewotICAgIDAsIFdLRHJhd1BhdHRlcm5CaXRtYXAsIFdLUmVsZWFzZVBhdHRlcm5CaXRtYXAKLX07
Ci0KLUNHUGF0dGVyblJlZiBXS0NyZWF0ZVBhdHRlcm5Gcm9tQ0dJbWFnZShDR0ltYWdlUmVmIGlt
YWdlUmVmKQotewotICAgIC8vIHJldGFpbiBpbWFnZSBzaW5jZSBpdCdzIGZyZWVkIGJ5IG91ciBj
YWxsYmFjawotICAgIENHSW1hZ2VSZXRhaW4oaW1hZ2VSZWYpOwotCi0gICAgQ0dGbG9hdCBzY2Fs
ZSA9IHNjcmVlblNjYWxlRmFjdG9yKCk7Ci0gICAgcmV0dXJuIENHUGF0dGVybkNyZWF0ZSgodm9p
ZCopaW1hZ2VSZWYsIENHUmVjdE1ha2UoMCwgMCwgQ0dJbWFnZUdldFdpZHRoKGltYWdlUmVmKSAv
IHNjYWxlLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlUmVmKSAvIHNjYWxlKSwgQ0dBZmZpbmVUcmFu
c2Zvcm1JZGVudGl0eSwgQ0dJbWFnZUdldFdpZHRoKGltYWdlUmVmKSAvIHNjYWxlLCBDR0ltYWdl
R2V0SGVpZ2h0KGltYWdlUmVmKSAvIHNjYWxlLCBrQ0dQYXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFj
aW5nLCAxIC8qaXNDb2xvcmVkKi8sICZXS1BhdHRlcm5CaXRtYXBDYWxsYmFja3MpOwotfQotCi12
b2lkIFdLU2V0UGF0dGVybihDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dQYXR0ZXJuUmVmIHBhdHRl
cm4sIGJvb2wgZmlsbCwgYm9vbCBzdHJva2UpIAotewotICAgIGlmIChwYXR0ZXJuID09IE5VTEwp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIENHRmxvYXQgcGF0dGVybkFscGhhID0gMTsKLSAgICBD
R0NvbG9yU3BhY2VSZWYgY29sb3JzcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZVBhdHRlcm4oTlVM
TCk7Ci0gICAgaWYgKGZpbGwpIHsKLSAgICAgICAgQ0dDb250ZXh0U2V0RmlsbENvbG9yU3BhY2Uo
Y29udGV4dCwgY29sb3JzcGFjZSk7Ci0gICAgICAgIENHQ29udGV4dFNldEZpbGxQYXR0ZXJuKGNv
bnRleHQsIHBhdHRlcm4sICZwYXR0ZXJuQWxwaGEpOwotICAgIH0KLSAgICBpZiAoc3Ryb2tlKSB7
Ci0gICAgICAgIENHQ29udGV4dFNldFN0cm9rZUNvbG9yU3BhY2UoY29udGV4dCwgY29sb3JzcGFj
ZSk7Ci0gICAgICAgIENHQ29udGV4dFNldFN0cm9rZVBhdHRlcm4oY29udGV4dCwgcGF0dGVybiwg
JnBhdHRlcm5BbHBoYSk7Ci0gICAgfQotICAgIENHQ29sb3JTcGFjZVJlbGVhc2UoY29sb3JzcGFj
ZSk7Ci19Ci0KICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3NJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL3dhay9XS0dyYXBoaWNzSW50ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggM2ZlZDQ3NmYyMmMwNTE1MTlkYTAyZmQ1MTIxN2VmNmRmNDIzZjg0Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3NJbnRlcm5hbC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgVEFSR0VU
X09TX0lQSE9ORQotCi0jaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+Ci0KLXR5
cGVkZWYgaW50IFdLQ29tcG9zaXRlT3BlcmF0aW9uOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4
dGVybiAiQyIgewotI2VuZGlmCi0KLXZvaWQgV0tSZWN0RmlsbFVzaW5nT3BlcmF0aW9uKENHQ29u
dGV4dFJlZiwgQ0dSZWN0LCBXS0NvbXBvc2l0ZU9wZXJhdGlvbik7Ci1DR0ltYWdlUmVmIFdLR3Jh
cGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFtZShjb25zdCBjaGFyICppbWFnZV9maWxl
KTsKLUNHUGF0dGVyblJlZiBXS0NyZWF0ZVBhdHRlcm5Gcm9tQ0dJbWFnZShDR0ltYWdlUmVmIGlt
YWdlUmVmKTsKLXZvaWQgV0tTZXRQYXR0ZXJuKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1BhdHRl
cm5SZWYgcGF0dGVybiwgYm9vbCBmaWxsLCBib29sIHN0cm9rZSk7Ci0KLSNpZmRlZiBfX2NwbHVz
cGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggNWVhYzc0YWJkMjFiMTE2YTcz
ZjUwNGMyNWMyYzE5M2IwMjE0NWJhOC4uMGE3ODRjY2MzNGFmMDFkYjEwNjQ4NmZiYzc3MzUxMzNh
NTA0YzZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApA
QCAtNzI2LDcgKzcyNiw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRQbGF0Zm9ybURvY3Vt
ZW50TWFya2VyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICAgICAgdW5kZXJs
aW5lT2Zmc2V0ID0gYmFzZWxpbmUgKyAyOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuZHJhd0xpbmVG
b3JEb2N1bWVudE1hcmtlcihyZW5kZXJlcigpLCBjb250ZXh0LCBGbG9hdFBvaW50KGJveE9yaWdp
bi54KCkgKyBzdGFydCwgYm94T3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNldCksIHdpZHRoLCBs
aW5lU3R5bGVGb3JNYXJrZWRUZXh0VHlwZShtYXJrZWRUZXh0LnR5cGUpKTsKICNlbHNlCiAgICAg
Y29udGV4dC5kcmF3TGluZUZvckRvY3VtZW50TWFya2VyKEZsb2F0UG9pbnQoYm94T3JpZ2luLngo
KSArIHN0YXJ0LCBib3hPcmlnaW4ueSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVT
dHlsZUZvck1hcmtlZFRleHRUeXBlKG1hcmtlZFRleHQudHlwZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKaW5kZXggMzAxNTFkODQ4ZWU0NWNmODVkODg5
NDExMzE0MmUwNzIyOWJlMWM0Yy4uYzI4MzBmZThhZGNhZDUxZTEyZDQzMWJkNmFmZTEzMzQ5OWRi
MzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCkBA
IC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyVGhlbWVD
b2NvYSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiBwcml2YXRlOgorICAgIHZvaWQgZHJhd0xpbmVG
b3JEb2N1bWVudE1hcmtlcihjb25zdCBSZW5kZXJUZXh0JiwgR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGUpIGZpbmFsOworCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICB2b2lkIGFkanVzdEFwcGxl
UGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVu
dCopIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRBcHBsZVBheUJ1dHRvbihjb25zdCBS
ZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCmluZGV4IGRm
MmM3MzFkMDg5Njc2MWQyNzc0MmRkOTNlZTZlMTMxM2RkZmQyOTEuLmMyYzQ1ZDc2ODk0YzEwNmVi
NWUwMTAyNzBlOTEwNDQwMGIyYzNiODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0yMywxNiArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
UmVuZGVyVGhlbWVDb2NvYS5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJSZW5kZXJU
aGVtZUNvY29hLmgiCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0jaW5jbHVkZSAiUmVuZGVy
RWxlbWVudC5oIgotI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSAiVHJhbnNsYXRl
VHJhbnNmb3JtT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJ
Lmg+Ci0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRDRy5oIgorI2ltcG9ydCAiUmVuZGVyRWxlbWVudC5oIgorI2ltcG9ydCAiUmVuZGVyU3R5bGUu
aCIKKyNpbXBvcnQgIlJlbmRlclRleHQuaCIKKyNpbXBvcnQgIlRyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oIgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmg+CisjaW1wb3J0
IDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKIFNPRlRfTElOS19QUklW
QVRFX0ZSQU1FV09SSyhQYXNzS2l0KTsKQEAgLTQ1LDEyICs0Nyw1NiBAQCBTT0ZUX0xJTktfTUFZ
X0ZBSUwoUGFzc0tpdCwgUEtEcmF3QXBwbGVQYXlCdXR0b24sIHZvaWQsIChDR0NvbnRleHRSZWYg
Y29udGV4dCwgQwogI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCiAKICNpZiBFTkFCTEUoVklE
RU8pCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9CbG9ja09i
akNFeGNlcHRpb25zLmg+CisjaW1wb3J0ICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW1wb3J0IDx3
dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorc3RhdGljIENHQ29sb3JSZWYgY29sb3JGb3JTdHlsZShEb2N1bWVudE1hcmtlckxpbmVTdHls
ZSBzdHlsZSwgYm9vbCB1c2VEYXJrTW9kZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAg
Ly8gUmVkCisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmc6CisgICAg
ICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyAyNTUsIDE0MCwg
MTQwLCAyMTcgfSA6IENvbG9yIHsgMjU1LCA1OSwgNDgsIDE5MSB9KTsKKyAgICAvLyBCbHVlCisg
ICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmVzOgor
ICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBo
cmFzZVdpdGhBbHRlcm5hdGl2ZXM6CisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6
QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKKyAgICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3Io
dXNlRGFya01vZGUgPyBDb2xvciB7IDQwLCAxNDUsIDI1NSwgMjE3IH0gOiBDb2xvciB7IDAsIDEy
MiwgMjU1LCAxOTEgfSk7CisgICAgLy8gR3JlZW4KKyAgICBjYXNlIERvY3VtZW50TWFya2VyTGlu
ZVN0eWxlOjpHcmFtbWFyOgorICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9k
ZSA/IENvbG9yIHsgNTAsIDIxNSwgNzUsIDIxNyB9IDogQ29sb3IgeyAyNSwgMTc1LCA1MCwgMTkx
IH0pOworICAgIH0KK30KKwordm9pZCBSZW5kZXJUaGVtZUNvY29hOjpkcmF3TGluZUZvckRvY3Vt
ZW50TWFya2VyKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFy
a2VyTGluZVN0eWxlIHN0eWxlKQoreworICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBjaXJjbGVDb2xvciA9IGNvbG9yRm9yU3R5
bGUoc3R5bGUsIHJlbmRlcmVyLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgJiYgcmVuZGVy
ZXIucGFnZSgpLnVzZURhcmtBcHBlYXJhbmNlKCkpOworCisgICAgLy8gQ2VudGVyIHRoZSB1bmRl
cmxpbmUgYW5kIGVuc3VyZSB3ZSBvbmx5IGRyYXcgZW50aXJlIGRvdHMuCisgICAgRmxvYXRQb2lu
dCBvZmZzZXRQb2ludCA9IG9yaWdpbjsKKyAgICBmbG9hdCB3aWR0aE1vZCA9IGZtb2RmKHdpZHRo
LCBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKTsKKyAgICBpZiAoY01pc3NwZWxsaW5nTGlu
ZVBhdHRlcm5XaWR0aCAtIHdpZHRoTW9kID4gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0
aCkgeworICAgICAgICBmbG9hdCBnYXBJbmNsdWRlV2lkdGggPSAwOworICAgICAgICBpZiAod2lk
dGggPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKQorICAgICAgICAgICAgZ2FwSW5jbHVk
ZVdpZHRoID0gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0aDsKKyAgICAgICAgb2Zmc2V0
UG9pbnQubW92ZShmbG9vcigod2lkdGhNb2QgKyBnYXBJbmNsdWRlV2lkdGgpIC8gMiksIDApOwor
ICAgICAgICB3aWR0aCAtPSB3aWR0aE1vZDsKKyAgICB9CisKKyAgICBDR0NvbnRleHRSZWYgY29u
dGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7CisgICAgQ0dDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyIHsgY29udGV4dCB9OworICAgIENHQ29udGV4dFNldEZpbGxDb2xvcldpdGhD
b2xvcihjb250ZXh0LCBjaXJjbGVDb2xvcik7CisgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0
aDsgeCArPSBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKQorICAgICAgICBDR0NvbnRleHRB
ZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1ha2Uob2Zmc2V0UG9pbnQueCgpICsgeCwg
b2Zmc2V0UG9pbnQueSgpLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzLCBjTWlzc3BlbGxpbmdM
aW5lVGhpY2tuZXNzKSk7CisgICAgQ0dDb250ZXh0U2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbnRl
eHQsIGtDR0NvbXBvc2l0ZVNvdmVyKTsKKyAgICBDR0NvbnRleHRGaWxsUGF0aChjb250ZXh0KTsK
K30KKwogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKIHN0YXRpYyBjb25zdCBhdXRvIGFwcGxlUGF5
QnV0dG9uTWluaW11bVdpZHRoID0gMTQwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaAppbmRleCBkOThkZTNhOTU5OTE2YzhmYWEzNTRkZWRlNTE5OThmODhkOGIwZTlj
Li5iYTc5YmRhYzcyOTdiMzFiNDZhNmJmNGQ1ZDM3MjE1YWEzOTgzOWZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtMTc0LDggKzE3NCw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBwYWludEF0dGFjaG1lbnQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIGRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVuZGVyVGV4dCYsIEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2Vy
TGluZVN0eWxlKSBmaW5hbDsKLQogICAgIGJvb2wgdXNpbmdEYXJrQXBwZWFyYW5jZShjb25zdCBS
ZW5kZXJPYmplY3QmKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCBiODg5ZGFjNGQ0YTEyMjFjZDU3ZWViMGZk
MTJiYzU1NjEwYzkzYjQzLi4wNWU3ODFhMjMzNzRiODc0YTBlMzg4OTVlNDFmNzlmNmQwZDIwYTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0zNyw3
ICszNyw2IEBACiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIkdlb21ldHJ5VXRpbGl0
aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbXBvcnQgIkdyYXBoaWNzQ29u
dGV4dENHLmgiCiAjaW1wb3J0ICJIVE1MQXR0YWNobWVudEVsZW1lbnQuaCIKICNpbXBvcnQgIkhU
TUxJbnB1dEVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxNZWRpYUVsZW1lbnQuaCIKQEAgLTI5NzMs
NTAgKzI5NzIsNiBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludEF0dGFjaG1lbnQoY29uc3Qg
UmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbgogCiAjZW5kaWYgLy8gRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKIAotc3RhdGljIENHQ29sb3JSZWYgY29sb3JGb3JTdHlsZShE
b2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSwgYm9vbCB1c2VEYXJrTW9kZSkKLXsKLSAgICBz
d2l0Y2ggKHN0eWxlKSB7Ci0gICAgLy8gUmVkLgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGU6OlNwZWxsaW5nOgotICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9k
ZSA/IENvbG9yIHsgMjU1LCAxNDAsIDE0MCwgMjE3IH0gOiBDb2xvciB7IDI1NSwgNTksIDQ4LCAx
OTEgfSk7Ci0gICAgLy8gQmx1ZS4KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpE
aWN0YXRpb25BbHRlcm5hdGl2ZXM6Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6
VGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlczoKLSAgICBjYXNlIERv
Y3VtZW50TWFya2VyTGluZVN0eWxlOjpBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50OgotICAgICAg
ICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgNDAsIDE0NSwgMjU1
LCAyMTcgfSA6IENvbG9yIHsgMCwgMTIyLCAyNTUsIDE5MSB9KTsKLSAgICAvLyBHcmVlbi4KLSAg
ICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpHcmFtbWFyOgotICAgICAgICByZXR1cm4g
Y2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgNTAsIDIxNSwgNzUsIDIxNyB9IDog
Q29sb3IgeyAyNSwgMTc1LCA1MCwgMTkxIH0pOwotICAgIH0KLX0KLQotdm9pZCBSZW5kZXJUaGVt
ZU1hYzo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJl
ciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZs
b2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKLXsKLSAgICBpZiAoY29u
dGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gY2ly
Y2xlQ29sb3IgPSBjb2xvckZvclN0eWxlKHN0eWxlLCByZW5kZXJlci5wYWdlKCkudXNlU3lzdGVt
QXBwZWFyYW5jZSgpICYmIHJlbmRlcmVyLnBhZ2UoKS51c2VEYXJrQXBwZWFyYW5jZSgpKTsKLQot
ICAgIC8vIENlbnRlciB0aGUgdW5kZXJsaW5lIGFuZCBlbnN1cmUgd2Ugb25seSBkcmF3IGVudGly
ZXMgZG90cy4KLSAgICBGbG9hdFBvaW50IG9mZnNldFBvaW50ID0gb3JpZ2luOwotICAgIGZsb2F0
IHdpZHRoTW9kID0gZm1vZGYod2lkdGgsIGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGgpOwot
ICAgIGlmIChjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoIC0gd2lkdGhNb2QgPiBjTWlzc3Bl
bGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKSB7Ci0gICAgICAgIGZsb2F0IGdhcEluY2x1ZGVXaWR0
aCA9IDA7Ci0gICAgICAgIGlmICh3aWR0aCA+IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGgp
Ci0gICAgICAgICAgICBnYXBJbmNsdWRlV2lkdGggPSBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdh
cFdpZHRoOwotICAgICAgICBvZmZzZXRQb2ludC5tb3ZlKGZsb29yKCh3aWR0aE1vZCArIGdhcElu
Y2x1ZGVXaWR0aCkgLyAyKSwgMCk7Ci0gICAgICAgIHdpZHRoIC09IHdpZHRoTW9kOwotICAgIH0K
LQotICAgIENHQ29udGV4dFJlZiBjdHggPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOwotICAg
IENHQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlciB7IGN0eCB9OwotICAgIENHQ29udGV4dFNl
dEZpbGxDb2xvcldpdGhDb2xvcihjdHgsIGNpcmNsZUNvbG9yKTsKLSAgICBmb3IgKGludCB4ID0g
MDsgeCA8IHdpZHRoOyB4ICs9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGgpCi0gICAgICAg
IENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QoY3R4LCBDR1JlY3RNYWtlKG9mZnNldFBvaW50Lngo
KSArIHgsIG9mZnNldFBvaW50LnkoKSwgY01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcywgY01pc3Nw
ZWxsaW5nTGluZVRoaWNrbmVzcykpOwotICAgIENHQ29udGV4dFNldENvbXBvc2l0ZU9wZXJhdGlv
bihjdHgsIGtDR0NvbXBvc2l0ZVNvdmVyKTsKLSAgICBDR0NvbnRleHRGaWxsUGF0aChjdHgpOwot
fQotCiBib29sIFJlbmRlclRoZW1lTWFjOjp1c2luZ0RhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRl
ck9iamVjdCYgbykgY29uc3QKIHsKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347746</attachid>
            <date>2018-08-21 18:00:45 -0700</date>
            <delta_ts>2018-08-22 09:40:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188828-20180821180044.patch</filename>
            <type>text/plain</type>
            <size>51352</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M3ZDQ2ZDc3ZmQ5ZjQ0
NTMxMjk1YjIwMTE2NTI3NDM2NmViZmY0NS4uMDkyYjNiNjJkMGE5ZTE0ZWNjOTE5NmVhZDQ3YTUy
MTNmZGFlYzUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE4LTA4LTIxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBTaGFyZSBzcGVsbGluZyBk
b3QgcGFpbnRpbmcgY29kZSBiZXR3ZWVuIE1hYyBhbmQgaU9TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg4MjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbG9vayBvZiB0aGUgc3BlbGxpbmcgZG90
cyBvbiBNYWMgYW5kIGlPUyBhcmUgaWRlbnRpY2FsIHVwIHRvIGNvbG9yLiBUb3dhcmRzIG1ha2lu
ZyB0aGUKKyAgICAgICAgc3BlbGxpbmcgZG90cyBpbiBXZWJLaXQgb24gaU9TIG1vcmUgY2xvc2Vs
eSBtYXRjaCB0aGUgbG9vayBvZiB0aGUgc3BlbGxpbmcgZG90cyBpbiBVSUtpdC0KKyAgICAgICAg
YXBwcywgc3RhbmRhcmRpemUgb24gdXNpbmcgdGhlIHNhbWUgcGFpbnRpbmcgY29kZSBmb3IgYm90
aCBNYWMgYW5kIGlPUy4KKworICAgICAgICBDdXJyZW50bHkgaU9TIHVzZXMgYml0bWFwcyB0byBy
ZW5kZXIgdGhlIHNwZWxsaW5nIGRvdHMgYW5kIGRvZXMgbm90IGFjY291bnQgZm9yIHVzZXIvQ1NT
CisgICAgICAgIHpvb21pbmcuIEFzIGEgcmVzdWx0LCB0aGUgc3BlbGxpbmcgZG90cyBvbiBpT1Mg
cmVuZGVyIHdpdGggYXJ0aWZhY3RzIChlLmcuIHRydW5jYXRlZCBkb3RzKS4KKyAgICAgICAgQSBz
aWRlIGJlbmVmaXQgb2YgaGF2aW5nIGlPUyBzaGFyZSB0aGUgc2FtZSBwYWludGluZyBjb2RlIGFz
IE1hYyBpcyB0aGF0IGlPUyB3aWxsIG5vdyBwYWludAorICAgICAgICB0aGUgZG90cyBwcm9ncmFt
bWF0aWNhbGx5IGFuZCB3ZSBhdm9pZCBib3RoIHRoZSBuZWVkIHRvIHVzZSBiaXRtYXBzIGFuZCBm
aXggdGhlIGJ1Z3MgaW4KKyAgICAgICAgdGhlIHBhaW50aW5nIG9mIHRoZSBiaXRtYXAgZG90cyB3
aXRoIHJlc3BlY3QgdG8gem9vbWluZy4KKworICAgICAgICAqIFJlc291cmNlcy9EaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJj
ZXMvRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmc6IFJlbW92ZWQuCisg
ICAgICAgICogUmVzb3VyY2VzL1NwZWxsaW5nRG90LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBS
ZXNvdXJjZXMvU3BlbGxpbmdEb3RAMngucG5nOiBSZW1vdmVkLgorICAgICAgICAqIFJlc291cmNl
cy9TcGVsbGluZ0RvdEAzeC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcyk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZURvdFBhdHRlcm4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcyk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6dXBkYXRlRG9jdW1lbnRNYXJrZXJS
ZXNvdXJjZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFw
aGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVzb3VyY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW06CisgICAgICAgIChXS1JlY3RGaWxsKTogSW5j
b3Jwb3JhdGVkIHRoZSBsb2dpYyBmcm9tIF9GaWxsUmVjdFVzaW5nT3BlcmF0aW9uKCkuCisgICAg
ICAgIChfRmlsbFJlY3RVc2luZ09wZXJhdGlvbik6IERlbGV0ZWQ7IG1vdmVkIHRoZSBsb2dpYyBp
bnRvIFdLUmVjdEZpbGwoKSBzaW5jZSBXS1JlY3RGaWxsKCkKKyAgICAgICAgaXMgbm93IHRoZSBv
bmx5IGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV0tSZWN0RmlsbFVzaW5nT3Bl
cmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKGltYWdlUmVzb3VyY2VQYXRoKTogRGVsZXRlZC4K
KyAgICAgICAgKFdLR3JhcGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFtZSk6IERlbGV0
ZWQuCisgICAgICAgIChXS0RyYXdQYXR0ZXJuQml0bWFwKTogRGVsZXRlZC4KKyAgICAgICAgKFdL
UmVsZWFzZVBhdHRlcm5CaXRtYXApOiBEZWxldGVkLgorICAgICAgICAoV0tTZXRQYXR0ZXJuKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3NJbnRlcm5hbC5o
OiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50UGxhdGZvcm1Eb2N1bWVudE1hcmtlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRm9yU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6ZHJhd0xpbmVGb3JEb2N1
bWVudE1hcmtlcik6IE1vdmVkIGZyb20gUmVuZGVyVGhlbWVNYWMuIEkgcmVuYW1lZAorICAgICAg
ICB0aGUgbG9jYWwgdmFyaWFibGUgY3R4IHRvIGNvbnRleHQgYW5kIGZpeGVkIGEgdHlwZSBpbiBh
IGNvbW1lbnQgd2hpbGUgbW92aW5nIHRoaXMgY29kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpjb2xvckZvclN0eWxlKTogRGVsZXRlZDsgbW92ZWQgdG8gY2xhc3Mg
UmVuZGVyVGhlbWVDb2NvYS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpkcmF3
TGluZUZvckRvY3VtZW50TWFya2VyKTogRGVsZXRlZDsgbW92ZWQgdG8gY2xhc3MgUmVuZGVyVGhl
bWVDb2NvYS4KKwogMjAxOC0wOC0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFVzZSBWaXNpYmxlUG9zaXRpb24gdG8gY2FsY3VsYXRlIHNlbGVj
dGlvbiByYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9EaWN0YXRp
b25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNl
cy9EaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNDJlMTBmOGNhNjY3MDIwZGRkYjhiZTg0Zjk2ODQ5NTE3NDM4NTA2MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxODMKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB2cF5FSWBjNiEzSEZeZHw3dTROTzJaO0w+NG5KYTBgUGxCZzNwWTU8byRQCnpXUkQ8VTI4SnFD
MjhNPWEyOE4maWYlSG9UaEVmOXRoRjF2OzN8MkUzN3t2MUAjVUZKOHM8cmlXYVNXLXIjZDZTKQp6
Pnd0bSkhQDtaayhHZ2xJdCEyfnA9YCVWYCohK1JMe00/VDFrJkhxQ15GNis4KClseEFAaWJHemVD
T1hjUHMhWTMKYWU4PUYoQnp9X0ZaZX1qZkFPPXJZS2JMaCoyfjdaYE1LdWlvCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2
ZXNEb3RAMngucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL0RpY3RhdGlvblBocmFzZVdp
dGhBbHRlcm5hdGl2ZXNEb3RAMngucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
ZjM2OWZiNDg2OWRmZjk5MDYyYmQ2MDMyY2VkMjk5MDA4YTI1N2JmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpsaXRlcmFsIDI2Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjk2LSMqITNIRyV2
RUtnO3EmTiNhQjh3UnF4UD9LT2t6dip4MzgwYHQKenZQWTBGMTRFVDYxNEJiSTFIO2UlSz44JkVM
I1k3KyE+YUBhMkNFcWk0QzQ4ZDsqWXVrKWxUJHVhU1ctcjwjV29LCno+eVUjNCFeMjRQJGpKKkA9
YmdURSVJayF4aTBqMl9qK0hxJmRxYmApTlZwZXlEMVJkdHBVP018ciRjK1R6T2d6agp6YmxgYHx6
Vm41NGk8dioldnV1Q2Y5VTh9UXB5RWlIbF9QVURnVEFrLVV3Kig8SntRRmpUfCo2YXhwS3dSMypP
N0YKekBWZGF8ei1XKz5aRTNwbkx3JlVPQSM7N004YDhTVkc5bm1RK0tNZWdacDs3UlZYISlCPEd8
VD5HODU9SDIyV1ElCkptdnY0Rk8jdEBPU2lBckwKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvU3BlbGxpbmdEb3QucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL1Nw
ZWxsaW5nRG90LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYxYTliNzg4ZDQ0
MDYyODkyYzVkMzc2MjY4Njg3NGVmMDcxZjUyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0
ZXJhbCAxOTUKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5FSWBjNiEzLXB1d2NAXmoxa3hSUzlU
Xnl8LU1IYyhWRmN0JG1iZ1pnCnoxbX54ZmxxVkxZR0J+RT5DIzVRUTx8ZH02MkJqdlpSMkg2MHdF
LSVVNCk2KGF7ZVNpOXp0eVklaEtLKn1wWVlHWQp6O2FgOU1Vd1FkfDtTdkE7fDJLNEZ5JGUqdlNy
WChJNENJMFZMJEg1XjVYYl5nN3Nycl9UUypCQ0RHdzQ3a2BrWE0KZ0IlfiVrVzhnNGdWNjxqMTRP
X0Foc0RePlQpNzgmcW9sYDsrMERjb2hvJlcjPAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1Jlc291cmNlcy9TcGVsbGluZ0RvdEAyeC5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMv
U3BlbGxpbmdEb3RAMngucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYThlMzFj
MmRhYTU4M2UwNDM1YTUzYTRiYzFiZTM1M2IxMzUwZWY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpsaXRlcmFsIDI1Ngp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjk2LSMqITNIRyV2RUtnO3Em
TiNhQjh3UnF4UD9LT2t6dip4MzgwYHQKenZQWTBGMTRFVDYxNEJiSTFIJV59LUV4dEVBdmQwWjtZ
QUp1Z0gxT0JnTEZqbWJNXnxMK0JRIVkkQj5GIUEqVktTCnpIOTFIZV8qbm50P240RERpKGdUR3pL
IX5jQkNkUGdBNiQ4NHtqI0x7Z0txbX0mMShmNlV1TV8wPVU8T31fUzI2ZQp6b25jTGA7V083elJ0
Q3Fmb210Sl84NzhFTGNSa3tXTnFYXkg+VXFNZkIjJlQ/KF5kUzM4T3xOdGJWUHdrYWY0dlUKento
czh7OyoqeCNaOHFlO2NKPEw7JklYKFIzUHJhTTx1bUFQKXhHZzNeeHM+Y2l4QG16e2FuXkxCe1Rz
NW98YXg1CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL1NwZWxsaW5nRG90
QDN4LnBuZyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdEAzeC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxYjdmN2FmZTc4ODk1MzBjYTdjODczNzg1NDdj
MzRlMGFhMGIwMmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjcwCnpjbVYrcDBy
Q0VjUCk8aDszS3xMazAwMGUxTkpMVHEwMDBhQzAwMFJIMV5AczYyRHJeczAwMDBQYlZYUW5RKlVO
Owp6Y1ZUajYwNn1ETFZyM3ZuWkRENitRZXxPZWQyentRSk9CVXl1dGBLZ1JDd0JTaytCVmZGYzN4
V3F6c1plcjh7UXUKejI0TjcyKVI5O09IdC1yUXNvNE1sbEgxR0FhZ09hR1U7ZFZMe19sVztXZiV5
JCEjKFVfMlMrJS02VEgkbVFyNkFGCnpafT4/P28lc1IzNiM0LXZefjgqQD1wdGdXIX1vfGZGVkBo
Ml5ZQjs1Qm5VSEtqRiFjPnpfdlRQen5hSXhwcXJ+Kwp6Nn5Na2xUeX58elMxPjw4SUpVclgyS35V
JnYyKyhETEpPb2MqKS19WVd6OUMpV357ND9adSRFa0R0IWJQMEd6QmsKVTFNPSt4Qj4oXmIwNypx
b002TjwkZzAlbHtPI2xEQAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBjYTE5MWQ1NzYyZGZkZjZlZjcwYzMzY2U5ZGVmZTA3NDVm
NzMwYjI4Li5kZTNlNDAxOGMyMDA1ZmU3NGZmNTU2YjhjMTZkMDUxNzNjODhkMWVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
Nyw3ICs1Nyw2IEBACiAJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRP
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAx
RDNDRjdGMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCAqLzsgfTsKIAkJ
MDFEM0NGODYxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAxRDNDRjgwMTRCRDBBMzAw
MEZFOTk3MCAvKiBXZWJHTFNoYXJlZE9iamVjdC5jcHAgKi87IH07CiAJCTAxRDNDRjg3MTRCRDBB
MzAwMEZFOTk3MCAvKiBXZWJHTFNoYXJlZE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDFEM0NGODExNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdM
U2hhcmVkT2JqZWN0LmggKi87IH07Ci0JCTAxRTZDMkU0MTE5NEIyODIwMDUwODIxQyAvKiBTcGVs
bGluZ0RvdEAyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDAxRTZDMkUzMTE5NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgKi87
IH07CiAJCTA1NjJGOTYxMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNTYyRjk2MDE1NzNGODhG
MDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA1RkQ2OUUwMTI4NDVENDMwMEIyQkVCMyAvKiBET01UaW1l
U3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1
RkQ2OURGMTI4NDVENDMwMEIyQkVCMyAvKiBET01UaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNjAyN0NBRDBCMUNCRkMwMDA4ODRC
MkQgLyogQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNjAyN0NBQzBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVt
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYz
MCw3ICs2MjksNiBAQAogCQkxQzEyQUMyQjFFRTc3OEFFMDA3OUUwQTAgLyogRm9udEZhbWlseVNw
ZWNpZmljYXRpb25Db3JlVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUMxMkFDMjkxRUU3NzhBRTAwNzlFMEEwIC8qIEZvbnRGYW1pbHlTcGVjaWZp
Y2F0aW9uQ29yZVRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxQzE4REE1OTE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBhaW50ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMThEQTU3MTgxQUY2
QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oICovOyB9OwogCQkxQzIxRTU3RDE4M0VEMUZGMDAx
QzI4OUQgLyogSU9TdXJmYWNlUG9vbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUMyMUU1N0IxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFjZVBvb2wu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxQzI0
MTdCQTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI0MTdCOTE5OTJDMDQxMDBFRjk5
MzggLyogU3BlbGxpbmdEb3RAM3gucG5nICovOyB9OwogCQkxQzI0RUVBNTFDNzI5Q0U0MDA4MEY4
RkMgLyogRm9udEZhY2VTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDMjRFRUEzMUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oICovOyB9
OwogCQkxQzI0RUVBOTFDNzJBN0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyNEVFQTcxQzcyQTdCNDAw
ODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCAqLzsgfTsKIAkJMUM2NjI2MTExQzZFN0NBNjAwQUI1
MjdDIC8qIEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQzY2MjYwRjFDNkU3Q0E2MDBBQjUyN0MgLyogRm9udEZhY2UuaCAqLzsgfTsKQEAg
LTM4NjMsNyArMzg2MSw2IEBACiAJCUJFODhFMERGMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1Ry
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRTg4
RTBEMzE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJFODhFMEUxMTcxNUQyQTIwMDY1OEQ5OCAv
KiBWaWRlb1RyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCRTg4RTBENTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuY3Bw
ICovOyB9OwogCQlCRTg4RTBFMjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFODhFMEQ2MTcx
NUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5oICovOyB9OwotCQlCRThDNzUzMTEwNjgx
MzI0MDAxRTkzRjUgLyogU3BlbGxpbmdEb3QucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRThDNzUzMDEwNjgxMzI0MDAxRTkzRjUgLyogU3BlbGxp
bmdEb3QucG5nICovOyB9OwogCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1Ry
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRThF
RjAzRjE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggKi87IH07CiAJCUJFOEVGMDQ1
MTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRThFRjA0MTE3MUM4RkY5MDA5QjQ4QzMgLyog
SlNBdWRpb1RyYWNrTGlzdC5oICovOyB9OwogCQlCRThFRjA0QjE3MUM5MDE0MDA5QjQ4QzMgLyog
SlNWaWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCRThFRjA0NzE3MUM5MDE0MDA5QjQ4QzMgLyogSlNWaWRlb1RyYWNrLmggKi87IH07CkBA
IC00MTI0LDggKzQxMjEsNiBAQAogCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVM
b2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQwMDBFQkExMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFj
aGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUQwMDBFRDI4MTFDMUI5Q0QwMEM0NzcyNiAvKiBTdWJmcmFtZUxvYWRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDAwMEVEMjYxMUMxQjlDRDAwQzQ3
NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRDAxQTI3QUUxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRT
dHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQw
MUEyN0FDMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRDAyQjY0QjIxNDA4OUU1NjAw
NkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDJCNjRCMDE0MDg5RTU2
MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdC5wbmcgKi87IH07
Ci0JCUQwMkI2NEIzMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJu
YXRpdmVzRG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDAyQjY0QjExNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhB
bHRlcm5hdGl2ZXNEb3RAMngucG5nICovOyB9OwogCQlEMDVDRUQyQTBBNDBCQjJDMDBDNUFGMzgg
LyogRm9ybWF0QmxvY2tDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEMDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21t
YW5kLmggKi87IH07CiAJCUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
MDZDMEQ4RDBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5oICovOyB9Owog
CQlEMDdERUFCQTBBMzY1NTRBMDBDQTMwRjggLyogSW5zZXJ0TGlzdENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwN0RFQUI4MEEzNjU1NEEw
MENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oICovOyB9OwpAQCAtNDc5OCw3ICs0NzkzLDYg
QEAKIAkJRUJGNTEyMUQxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkY1MTIxQjE2OTY0
OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuaCAqLzsgfTsKIAkJRUNBNjgwQzcxRTY3
NzI0NTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgwQzYxRTY3NzI0NTAwNzMxRDIwIC8qIFN0cmlu
Z1V0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUVDQ0RCODgxMUU0QjhDNTkwMEExQUVBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlvbklu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Q0NEQjg4MDFFNEI4QzU5MDBBMUFFQTYgLyogV0tDb250ZW50T2JzZXJ2YXRpb25JbnRlcm5hbC5o
ICovOyB9OwotCQlFQ0NEQjg4NzFFNEJCNjNGMDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0NEQjg4
NjFFNEJCNjNGMDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVybmFsLmggKi87IH07CiAJCUVEMkJB
ODNDMDlBMjRCOTEwMDZDMEFDNCAvKiBEb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUQyQkE4M0IwOUEyNEI5MTAwNkMwQUM0IC8q
IERvY3VtZW50TWFya2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRURFM0E1MDAwQzdBNDMwNjAwOTU2QTM3IC8qIENvbG9yTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFREUzQTRGRjBDN0E0MzA2
MDA5NTZBMzcgLyogQ29sb3JNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFREVDOTgwMzBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZp
eC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRURFQzk4
MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLzsgfTsKQEAgLTUxNTcsNyAr
NTE1MSw2IEBACiAJCTAxRDNDRjdGMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmpl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0T2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAxRDNDRjgwMTRCRDBBMzAwMEZFOTk3
MCAvKiBXZWJHTFNoYXJlZE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJHTFNoYXJlZE9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTAxRDNDRjgxMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTFNoYXJlZE9iamVjdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFNoYXJlZE9iamVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwMUU2QzJFMzExOTRCMjgyMDA1MDgyMUMgLyogU3BlbGxp
bmdEb3RAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIlNwZWxsaW5nRG90QDJ4LnBuZyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA1NjJGOTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxh
eWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTGF5ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8q
IERPTVRpbWVTdGFtcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01UaW1l
U3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDYwMjdDQUMwQjFDQkZDMDAw
ODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
Mjk3LDcgKzYyOTAsNiBAQAogCQkxQzE4REE1NzE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBhaW50
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFBhaW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMyMUU1N0ExODNFRDFGRjAwMUMyODlEIC8qIElP
U3VyZmFjZVBvb2wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSU9T
dXJmYWNlUG9vbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMjFFNTdCMTgz
RUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElPU3VyZmFjZVBvb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MUMyNDE3QjkxOTkyQzA0MTAwRUY5OTM4IC8qIFNwZWxsaW5nRG90QDN4LnBuZyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9
ICJTcGVsbGluZ0RvdEAzeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzI0
RUVBMTFDNzI5QjMyMDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEZvbnRGYWNlU2V0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMy
NEVFQTIxQzcyOUNFNDAwODBGOEZDIC8qIEZvbnRGYWNlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRGYWNlU2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUMyNEVFQTMxQzcyOUNFNDAwODBGOEZDIC8qIEZvbnRGYWNlU2V0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRGYWNlU2V0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMzA0OSw3ICsxMzA0MSw2IEBACiAJCUJFODhFMEQ1MTcxNUQy
QTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBWaWRlb1RyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJFODhFMEQ2MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCRTg4RTBENzE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFj
a0xpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvVHJhY2tMaXN0LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkU4Qzc1MzAxMDY4MTMyNDAwMUU5M0Y1IC8qIFNw
ZWxsaW5nRG90LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IFNwZWxsaW5nRG90LnBuZzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkU4RUYwM0UxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0F1ZGlvVHJhY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRThFRjAzRjE3MUM4RkY5MDA5QjQ4QzMg
LyogSlNBdWRpb1RyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXVk
aW9UcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRThFRjA0MDE3MUM4RkY5
MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0F1ZGlvVHJhY2tMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEzNTYxLDggKzEzNTUyLDYgQEAKIAkJRDAwMEVEMjYxMUMxQjlDRDAwQzQ3NzI2
IC8qIFN1YmZyYW1lTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN1
YmZyYW1lTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMUEyN0FCMTBD
OUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwYWNlU3BsaXRTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMDFBMjdBQzEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5nLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwMkI2NEIwMTQwODlFNTYwMDZFRkEyMSAv
KiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IERpY3Rh
dGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlEMDJCNjRCMTE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFs
dGVybmF0aXZlc0RvdEAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVy
bmF0aXZlc0RvdEAyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDM2REQ4
RDIwOEZGQzBDMDBGOUY0QjIgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBU1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDA1Q0VEMjcwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0QmxvY2tDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA1Q0VEMjgwQTQwQkIyQzAwQzVB
RjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9ybWF0QmxvY2tDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNDUzNyw3ICsxNDUyNiw2IEBACiAJCUVDQTY4MEM2MUU2NzcyNDUwMDczMUQyMCAvKiBTdHJp
bmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVDQTY4MEM4MUU2NzczMEIw
MDczMUQyMCAvKiBTdHJpbmdVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBTdHJpbmdVdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUVDQ0RCODgwMUU0QjhDNTkwMEExQUVBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlvbklu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGVudE9ic2Vy
dmF0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRUNDREI4ODYx
RTRCQjYzRjAwQTFBRUE2IC8qIFdLR3JhcGhpY3NJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0dyYXBoaWNzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRUQyQkE4M0IwOUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TWFya2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVENTAxREM1MEIyNDlGMjkwMEFFMThEOSAvKiBFZGl0
b3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRWRpdG9y
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFREUzQTRGRjBDN0E0MzA2MDA5
NTZBMzcgLyogQ29sb3JNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29s
b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MjU5LDEzICsxOTI0Nyw4
IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkyRDUwQTRCNTFDRTEwRTAwMDAxOTgwNDkgLyogQXR0
YWNobWVudFBsYWNlaG9sZGVyLnBuZyAqLywKIAkJCQkyRDUwQTRCNjFDRTEwRTAwMDAxOTgwNDkg
LyogQXR0YWNobWVudFBsYWNlaG9sZGVyQDJ4LnBuZyAqLywKLQkJCQlEMDJCNjRCMDE0MDg5RTU2
MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdC5wbmcgKi8sCi0J
CQkJRDAyQjY0QjExNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5h
dGl2ZXNEb3RAMngucG5nICovLAogCQkJCUU1OURENEI3MjEwOTgyODUwMDNDOEI0NyAvKiBMaXN0
QnV0dG9uQXJyb3cucG5nICovLAogCQkJCUU1MTY2OThGMjBGRjk5MTYwMDlEMkMyNyAvKiBMaXN0
QnV0dG9uQXJyb3dAMngucG5nICovLAotCQkJCUJFOEM3NTMwMTA2ODEzMjQwMDFFOTNGNSAvKiBT
cGVsbGluZ0RvdC5wbmcgKi8sCi0JCQkJMDFFNkMyRTMxMTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxs
aW5nRG90QDJ4LnBuZyAqLywKLQkJCQkxQzI0MTdCOTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxp
bmdEb3RAM3gucG5nICovLAogCQkJKTsKIAkJCW5hbWUgPSBpbWFnZXM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMjEzNzUsNyArMjEzNTgsNiBAQAogCQkJCUVDQ0RCODgwMUU0QjhD
NTkwMEExQUVBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlvbkludGVybmFsLmggKi8sCiAJCQkJQTE0
ODMyQTQxODdGNTA4NzAwREE2M0E2IC8qIFdLR3JhcGhpY3MuaCAqLywKIAkJCQlBMTQ4MzJBNTE4
N0Y1MDg3MDBEQTYzQTYgLyogV0tHcmFwaGljcy5tbSAqLywKLQkJCQlFQ0NEQjg4NjFFNEJCNjNG
MDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVybmFsLmggKi8sCiAJCQkJQTE0ODMyQTYxODdGNTA4
NzAwREE2M0E2IC8qIFdLVHlwZXMuaCAqLywKIAkJCQlBMTQ4MzJBNzE4N0Y1MDg3MDBEQTYzQTYg
LyogV0tVdGlsaXRpZXMuYyAqLywKIAkJCQlBMTQ4MzJBODE4N0Y1MDg3MDBEQTYzQTYgLyogV0tV
dGlsaXRpZXMuaCAqLywKQEAgLTMxMDcxLDcgKzMxMDUzLDYgQEAKIAkJCQlBMTQ4MzJCRTE4N0Y2
NENDMDBEQTYzQTYgLyogV0tDb250ZW50T2JzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUVDQ0RCODgxMUU0QjhDNTkwMEExQUVBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlvbkludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ4MzJCRjE4N0Y2NTJDMDBEQTYzQTYgLyogV0tHcmFw
aGljcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRUNDREI4ODcxRTRCQjYzRjAwQTFBRUE2IC8qIFdL
R3JhcGhpY3NJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMyQzExODdGNjU3QTAw
REE2M0E2IC8qIFdLVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDgzMkMzMTg3RjY1REYw
MERBNjNBNiAvKiBXS1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMyQzQxODdG
NjYzQzAwREE2M0E2IC8qIFdLVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTI5Niw4ICszMTI3
Nyw2IEBACiAJCQkJMkQ1MEE0QjgxQ0UxMEUwMDAwMTk4MDQ5IC8qIEF0dGFjaG1lbnRQbGFjZWhv
bGRlckAyeC5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCUExQUE5QUI5MUQyMzkxMTUwMEZFQURC
MyAvKiBDb250ZW50RmlsdGVyQmxvY2tlZFBhZ2UuaHRtbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
QTExRThDMDUxQjFFMjhGNDAwMDNBN0M3IC8qIGNvcHlDdXJzb3IucG5nIGluIFJlc291cmNlcyAq
LywKLQkJCQlEMDJCNjRCMjE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFs
dGVybmF0aXZlc0RvdC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCUQwMkI2NEIzMTQwODlFNTYw
MDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJN0NDN0UzRDcxNzIwOEMwRjAwM0M1Mjc3IC8qIElETlNjcmlwdFdo
aXRlTGlzdC50eHQgaW4gUmVzb3VyY2VzICovLAogCQkJCTJEOUYwRTEzMTRGRjFDQkYwMEJBMEZG
NyAvKiBsaW5lYXJTUkdCLmljYyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTU5REQ0QjgyMTA5ODI4
NzAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgaW4gUmVzb3VyY2VzICovLApAQCAtMzEz
MTgsOSArMzEyOTcsNiBAQAogCQkJCUExMUU4QzA3MUIxRTI4RkUwMDAzQTdDNyAvKiBub3J0aEVh
c3RTb3V0aFdlc3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQlBMTFFOEMw
ODFCMUUyOTAyMDAwM0E3QzcgLyogbm9ydGhTb3V0aFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCUExMUU4QzA5MUIxRTI5MDcwMDAzQTdDNyAvKiBub3J0aFdlc3RTb3V0aEVh
c3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKLQkJCQlCRThDNzUzMTEwNjgxMzI0
MDAxRTkzRjUgLyogU3BlbGxpbmdEb3QucG5nIGluIFJlc291cmNlcyAqLywKLQkJCQkwMUU2QzJF
NDExOTRCMjgyMDA1MDgyMUMgLyogU3BlbGxpbmdEb3RAMngucG5nIGluIFJlc291cmNlcyAqLywK
LQkJCQkxQzI0MTdCQTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gucG5nIGluIFJl
c291cmNlcyAqLywKIAkJCQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1QkUgLyogdGV4dEFyZWFSZXNp
emVDb3JuZXIucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk5MzcwOTE4RDE0MTZEODZCMDA0Nzcz
MzMgLyogdGV4dEFyZWFSZXNpemVDb3JuZXJAMngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCA4YzVhNzc5YjczM2M5MGE3ZGZhYmE3YWIzMDE4YTcxZDlj
NDE5ZTg3Li5lMTJiNWZmY2NkMDI1MDMxNzQxZDJlYTcwYjJlYjg1MmZiMzc5ZTMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTkzMyw4ICs5MzMsNiBAQCB2b2lkIFBhZ2U6OnNldERldmljZVNjYWxl
RmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgIG1haW5GcmFtZSgpLmRldmljZU9yUGFnZVNj
YWxlRmFjdG9yQ2hhbmdlZCgpOwogICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2Vz
Rm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlzKTsKIAotICAgIEdyYXBoaWNzQ29udGV4
dDo6dXBkYXRlRG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMoKTsKLQogICAgIHBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggNTdi
M2JmNDY2ZjgzNGI1YTFlYTM0OGQwZDNiZDQ1ZjNlNTVjZjU3Yi4uNDk3ZDJjNzlmZDJjYjA4ZmMz
ZDBjY2JmOGY4ZWEyMjczYzQzMTAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQyMiw3ICs0MjIsNiBAQCBwdWJsaWM6
CiAgICAgRmxvYXRSZWN0IGNvbXB1dGVVbmRlcmxpbmVCb3VuZHNGb3JUZXh0KGNvbnN0IEZsb2F0
UG9pbnQmLCBmbG9hdCB3aWR0aCwgYm9vbCBwcmludGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkcmF3TGluZUZvclRleHQoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0IHdpZHRoLCBib29s
IHByaW50aW5nLCBib29sIGRvdWJsZUxpbmVzID0gZmFsc2UsIFN0cm9rZVN0eWxlID0gU29saWRT
dHJva2UpOwogICAgIHZvaWQgZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiwgY29u
c3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMgPSBm
YWxzZSwgU3Ryb2tlU3R5bGUgPSBTb2xpZFN0cm9rZSk7Ci0gICAgc3RhdGljIHZvaWQgdXBkYXRl
RG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMoKTsKICAgICB2b2lkIGRyYXdMaW5lRm9yRG9jdW1lbnRN
YXJrZXIoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVT
dHlsZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIo
ZmxvYXQgb3BhY2l0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggOGNmYjFl
OTIyNTdlNDMyNTI3MDZhZWE1NDViNDI2Mzk0ZmU5OWZkNi4uNWY4NTcwYjEyMTcwNWE2YmE5MTUw
NmUzMWJlZDk3ZjY0Nzg4Y2Y2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAt
MzM3LDExICszMzcsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4dChj
b25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRGFzaEFycmF5JgogICAgIENhaXJvOjpkcmF3
TGluZXNGb3JUZXh0KCpwbGF0Zm9ybUNvbnRleHQoKSwgcG9pbnQsIHdpZHRocywgcHJpbnRpbmcs
IGRvdWJsZVVuZGVybGluZXMsIG1fc3RhdGUuc3Ryb2tlQ29sb3IsIG1fc3RhdGUuc3Ryb2tlVGhp
Y2tuZXNzKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2Vy
UmVzb3VyY2VzKCkKLXsKLSAgICAvLyBVbm5lY2Vzc2FyeSwgc2luY2Ugb3VyIGRvY3VtZW50IG1h
cmtlcnMgZG9uJ3QgdXNlIHJlc291cmNlcy4KLX0KLQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3
aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7CiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KaW5kZXggYjVhOWQ2NjhmMThh
NTkxOGJhMjhjOWVkZWMwYWRlZWI3ZWRmY2QxMC4uYjE1Nzg2NWRmM2Y3Y2M5MGJlMWZhMDEyMzEx
ZjkxYjRjNmI4YzIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0KQEAgLTQxLDcgKzQx
LDYgQEAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0ICJDb2xvci5oIgogI2ltcG9ydCAiV0tH
cmFwaGljcy5oIgotI2ltcG9ydCAiV0tHcmFwaGljc0ludGVybmFsLmgiCiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKE1BQykKQEAgLTE3NCw1MSArMTczLDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHJlY3RzLCBmbG9hdCB3aWR0
aCwKICNlbmRpZgogfQogCi0jaWYgUExBVEZPUk0oTUFDKQotCi1zdGF0aWMgTlNJbWFnZSAqZmlu
ZEltYWdlKE5TU3RyaW5nKiBmaXJzdENob2ljZU5hbWUsIE5TU3RyaW5nKiBzZWNvbmRDaG9pY2VO
YW1lLCBib29sJiB1c2luZ0RvdCkKLXsKLSAgICAvLyBFdmVudHVhbGx5IHdlIHNob3VsZCBiZSBh
YmxlIHRvIGdldCByaWQgb2YgdGhlIHNlY29uZENob2ljZU5hbWUuIEZvciB0aGUgdGltZSBiZWlu
ZyB3ZSBuZWVkIGJvdGggdG8ga2VlcAotICAgIC8vIHRoaXMgd29ya2luZyBvbiBhbGwgcGxhdGZv
cm1zLgotICAgIE5TSW1hZ2UgKmltYWdlID0gW05TSW1hZ2UgaW1hZ2VOYW1lZDpmaXJzdENob2lj
ZU5hbWVdOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIGltYWdlID0gW05TSW1hZ2UgaW1hZ2VO
YW1lZDpzZWNvbmRDaG9pY2VOYW1lXTsKLSAgICBBU1NFUlQoaW1hZ2UpOyAvLyBpZiBpbWFnZSBp
cyBub3QgYXZhaWxhYmxlLCB3ZSB3YW50IHRvIGtub3cKLSAgICB1c2luZ0RvdCA9IGltYWdlOwot
ICAgIHJldHVybiBpbWFnZTsKLX0KLQotLy8gRklYTUU6IFNob3VsZCB1c2UgUmV0YWluUHRyIGlu
c3RlYWQgb2YgaGFuZHdyaXR0ZW4gcmV0YWluL3JlbGVhc2UuCi1zdGF0aWMgTlNJbWFnZSAqc3Bl
bGxpbmdJbWFnZSA9IG51bGxwdHI7Ci1zdGF0aWMgTlNJbWFnZSAqZ3JhbW1hckltYWdlID0gbnVs
bHB0cjsKLXN0YXRpYyBOU0ltYWdlICpjb3JyZWN0aW9uSW1hZ2UgPSBudWxscHRyOwotCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNIChJT1MpCi0KLXN0YXRpYyBSZXRhaW5QdHI8Q0dQYXR0ZXJuUmVm
PiBjcmVhdGVEb3RQYXR0ZXJuKGJvb2wmIHVzaW5nRG90LCBjb25zdCBjaGFyKiByZXNvdXJjZU5h
bWUpCi17Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gYWRvcHRDRihXS0dyYXBo
aWNzQ3JlYXRlSW1hZ2VGcm9tQnVuZGxlV2l0aE5hbWUocmVzb3VyY2VOYW1lKSk7Ci0gICAgQVNT
RVJUKGltYWdlKTsgLy8gaWYgaW1hZ2UgaXMgbm90IGF2YWlsYWJsZSwgd2Ugd2FudCB0byBrbm93
Ci0gICAgdXNpbmdEb3QgPSB0cnVlOwotICAgIHJldHVybiBhZG9wdENGKFdLQ3JlYXRlUGF0dGVy
bkZyb21DR0ltYWdlKGltYWdlLmdldCgpKSk7Ci19Ci0KLSNlbmRpZgotCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6dXBkYXRlRG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMoKQotewotI2lmIFBMQVRGT1JN
KE1BQykKLSAgICBbc3BlbGxpbmdJbWFnZSByZWxlYXNlXTsKLSAgICBzcGVsbGluZ0ltYWdlID0g
bnVsbHB0cjsKLSAgICBbZ3JhbW1hckltYWdlIHJlbGVhc2VdOwotICAgIGdyYW1tYXJJbWFnZSA9
IG51bGxwdHI7Ci0gICAgW2NvcnJlY3Rpb25JbWFnZSByZWxlYXNlXTsKLSAgICBjb3JyZWN0aW9u
SW1hZ2UgPSBudWxscHRyOwotI2VuZGlmCi19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRQYXR0
ZXJuUGhhc2VJblVzZXJTcGFjZShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dQb2ludCBwaGFzZVBv
aW50KQogewogICAgIENHQWZmaW5lVHJhbnNmb3JtIHVzZXJUb0Jhc2UgPSBnZXRVc2VyVG9CYXNl
Q1RNKGNvbnRleHQpOwpAQCAtMjI3LDE0MiArMTgxLDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz
ZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dQb2ludCBw
aGFzCiAgICAgQ0dDb250ZXh0U2V0UGF0dGVyblBoYXNlKGNvbnRleHQsIENHU2l6ZU1ha2UocGhh
c2UueCwgcGhhc2UueSkpOwogfQogCi0vLyBXZWJLaXQgb24gTWFjIGlzIGEgc3RhbmRhcmQgcGxh
dGZvcm0gY29tcG9uZW50LCBzbyBpdCBtdXN0IHVzZSB0aGUgc3RhbmRhcmQgcGxhdGZvcm0gYXJ0
d29yayBmb3IgdW5kZXJsaW5lLgotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9j
dW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHdpZHRoLCBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKKy8vIEZJWE1FOiBXZSBuZWVkIHRvIGtlZXAgdGhpcyBm
dW5jdGlvbiBzaW5jZSBpdCBpcyByZWZlcmVuY2VkIGJ5IERyYXdMaW5lRm9yRG9jdW1lbnRNYXJr
ZXI6OmFwcGx5KCkuCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1h
cmtlcihjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKQog
ewotICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8v
IFRoZXNlIGFyZSB0aGUgc2FtZSBmb3IgbWlzc3BlbGxpbmcgb3IgYmFkIGdyYW1tYXIuCi0gICAg
aW50IHBhdHRlcm5IZWlnaHQgPSBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzOwotICAgIGZsb2F0
IHBhdHRlcm5XaWR0aCA9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGg7Ci0KLSAgICBib29s
IHVzaW5nRG90OwotI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNJbWFnZSAqaW1hZ2U7Ci0gICAg
TlNDb2xvciAqZmFsbGJhY2tDb2xvcjsKLSNlbHNlCi0gICAgQ0dQYXR0ZXJuUmVmIGRvdFBhdHRl
cm47Ci0jZW5kaWYKLSAgICBzd2l0Y2ggKHN0eWxlKSB7Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtl
ckxpbmVTdHlsZTo6U3BlbGxpbmc6IHsKLSAgICAgICAgLy8gQ29uc3RhbnRzIGZvciBzcGVsbGlu
ZyBwYXR0ZXJuIGNvbG9yLgotICAgICAgICBzdGF0aWMgYm9vbCB1c2luZ0RvdEZvclNwZWxsaW5n
ID0gZmFsc2U7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgaWYgKCFzcGVsbGluZ0ltYWdl
KQotICAgICAgICAgICAgc3BlbGxpbmdJbWFnZSA9IFtmaW5kSW1hZ2UoQCJOU1NwZWxsaW5nRG90
IiwgQCJTcGVsbGluZ0RvdCIsIHVzaW5nRG90Rm9yU3BlbGxpbmcpIHJldGFpbl07Ci0gICAgICAg
IGltYWdlID0gc3BlbGxpbmdJbWFnZTsKLSAgICAgICAgZmFsbGJhY2tDb2xvciA9IFtOU0NvbG9y
IHJlZENvbG9yXTsKLSNlbHNlCi0gICAgICAgIHN0YXRpYyBDR1BhdHRlcm5SZWYgc3BlbGxpbmdQ
YXR0ZXJuID0gY3JlYXRlRG90UGF0dGVybih1c2luZ0RvdEZvclNwZWxsaW5nLCAiU3BlbGxpbmdE
b3QiKS5sZWFrUmVmKCk7Ci0gICAgICAgIGRvdFBhdHRlcm4gPSBzcGVsbGluZ1BhdHRlcm47Ci0j
ZW5kaWYKLSAgICAgICAgdXNpbmdEb3QgPSB1c2luZ0RvdEZvclNwZWxsaW5nOwotICAgICAgICBi
cmVhazsKLSAgICB9Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6R3JhbW1hcjog
ewotI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgIC8vIENvbnN0YW50cyBmb3IgZ3JhbW1hciBw
YXR0ZXJuIGNvbG9yLgotICAgICAgICBzdGF0aWMgYm9vbCB1c2luZ0RvdEZvckdyYW1tYXIgPSBm
YWxzZTsKLSAgICAgICAgaWYgKCFncmFtbWFySW1hZ2UpCi0gICAgICAgICAgICBncmFtbWFySW1h
Z2UgPSBbZmluZEltYWdlKEAiTlNHcmFtbWFyRG90IiwgQCJHcmFtbWFyRG90IiwgdXNpbmdEb3RG
b3JHcmFtbWFyKSByZXRhaW5dOwotICAgICAgICB1c2luZ0RvdCA9IGdyYW1tYXJJbWFnZTsKLSAg
ICAgICAgaW1hZ2UgPSBncmFtbWFySW1hZ2U7Ci0gICAgICAgIGZhbGxiYWNrQ29sb3IgPSBbTlND
b2xvciBncmVlbkNvbG9yXTsKLSAgICAgICAgYnJlYWs7Ci0jZWxzZQotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0gICAgfQotI2lmIFBMQVRG
T1JNKE1BQykKLSAgICAvLyBUbyBzdXBwb3J0IGNvcnJlY3Rpb24gcGFuZWwuCi0gICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKLSAgICBj
YXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM6IHsKLSAg
ICAgICAgLy8gQ29uc3RhbnRzIGZvciBzcGVsbGluZyBwYXR0ZXJuIGNvbG9yLgotICAgICAgICBz
dGF0aWMgYm9vbCB1c2luZ0RvdEZvclNwZWxsaW5nID0gZmFsc2U7Ci0gICAgICAgIGlmICghY29y
cmVjdGlvbkltYWdlKQotICAgICAgICAgICAgY29ycmVjdGlvbkltYWdlID0gW2ZpbmRJbWFnZShA
Ik5TQ29ycmVjdGlvbkRvdCIsIEAiQ29ycmVjdGlvbkRvdCIsIHVzaW5nRG90Rm9yU3BlbGxpbmcp
IHJldGFpbl07Ci0gICAgICAgIHVzaW5nRG90ID0gdXNpbmdEb3RGb3JTcGVsbGluZzsKLSAgICAg
ICAgaW1hZ2UgPSBjb3JyZWN0aW9uSW1hZ2U7Ci0gICAgICAgIGZhbGxiYWNrQ29sb3IgPSBbTlND
b2xvciBibHVlQ29sb3JdOwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYKLSNpZiBQTEFU
Rk9STShJT1MpCi0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6VGV4dENoZWNraW5n
RGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlczogewotICAgICAgICBzdGF0aWMgYm9vbCB1
c2luZ0RvdEZvckRpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXMgPSBmYWxzZTsKLSAgICAg
ICAgc3RhdGljIENHUGF0dGVyblJlZiBkaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzUGF0
dGVybiA9IGNyZWF0ZURvdFBhdHRlcm4odXNpbmdEb3RGb3JEaWN0YXRpb25QaHJhc2VXaXRoQWx0
ZXJuYXRpdmVzLCAiRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdCIpLmxlYWtSZWYo
KTsKLSAgICAgICAgZG90UGF0dGVybiA9IGRpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNQ
YXR0ZXJuOwotICAgICAgICB1c2luZ0RvdCA9IHVzaW5nRG90Rm9yRGljdGF0aW9uUGhyYXNlV2l0
aEFsdGVybmF0aXZlczsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKLSAgICBkZWZhdWx0OgotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgLy8gRklYTUU6
IFNob3VsZCByZW1vdmUgZGVmYXVsdCBjYXNlIHNvIHdlIGdldCBjb21waWxlLXRpbWUgZXJyb3Jz
LgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1Mp
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgRmxvYXRQb2ludCBvZmZzZXRQb2lu
dCA9IHBvaW50OwotCi0gICAgLy8gTWFrZSBzdXJlIHRvIGRyYXcgb25seSBjb21wbGV0ZSBkb3Rz
LgotICAgIGlmICh1c2luZ0RvdCkgewotICAgICAgICAvLyBhbGxvdyBzbGlnaHRseSBtb3JlIGNv
bnNpZGVyaW5nIHRoYXQgdGhlIHBhdHRlcm4gZW5kcyB3aXRoIGEgdHJhbnNwYXJlbnQgcGl4ZWwK
LSAgICAgICAgZmxvYXQgd2lkdGhNb2QgPSBmbW9kZih3aWR0aCwgcGF0dGVybldpZHRoKTsKLSAg
ICAgICAgaWYgKHBhdHRlcm5XaWR0aCAtIHdpZHRoTW9kID4gY01pc3NwZWxsaW5nTGluZVBhdHRl
cm5HYXBXaWR0aCkgewotICAgICAgICAgICAgZmxvYXQgZ2FwSW5jbHVkZVdpZHRoID0gMDsKLSAg
ICAgICAgICAgIGlmICh3aWR0aCA+IHBhdHRlcm5XaWR0aCkKLSAgICAgICAgICAgICAgICBnYXBJ
bmNsdWRlV2lkdGggPSBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoOwotICAgICAgICAg
ICAgb2Zmc2V0UG9pbnQubW92ZShmbG9vcigod2lkdGhNb2QgKyBnYXBJbmNsdWRlV2lkdGgpIC8g
MiksIDApOwotICAgICAgICAgICAgd2lkdGggLT0gd2lkdGhNb2Q7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgCi0gICAgLy8gRklYTUU6IFRoaXMgY29kZSBzaG91bGQgbm90IHVzZSBOU0dyYXBoaWNz
Q29udGV4dCBjdXJyZW50Q29udGV4dAotICAgIC8vIEluIG9yZGVyIHRvIHJlbW92ZSB0aGlzIHJl
cXVpcmVtZW50IHdlIHdpbGwgbmVlZCB0byB1c2UgQ0dQYXR0ZXJuIGluc3RlYWQgb2YgTlNDb2xv
cgotICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgc2hvdWxkIG5vdCBiZSB1c2luZyBzZXRQYXR0ZXJu
UGhhc2VJblVzZXJTcGFjZSwgYXMgdGhpcyBhcHByb2FjaCBpcyB3cm9uZwotICAgIC8vIGZvciB0
cmFuc2Zvcm1zLgotCi0gICAgLy8gRHJhdyB1bmRlcmxpbmUuCi0gICAgQ0dDb250ZXh0UmVmIGNv
bnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBDR0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIgeyBjb250ZXh0IH07Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgV0tTZXRQYXR0ZXJu
KGNvbnRleHQsIGRvdFBhdHRlcm4sIFlFUywgWUVTKTsKLSNlbmRpZgotCi0gICAgc2V0UGF0dGVy
blBoYXNlSW5Vc2VyU3BhY2UoY29udGV4dCwgb2Zmc2V0UG9pbnQpOwotCi0gICAgQ0dSZWN0IGRl
c3RpbmF0aW9uUmVjdCA9IENHUmVjdE1ha2Uob2Zmc2V0UG9pbnQueCgpLCBvZmZzZXRQb2ludC55
KCksIHdpZHRoLCBwYXR0ZXJuSGVpZ2h0KTsKLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIGlmIChp
bWFnZSkgewotICAgICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNvbnRleHQsIGRlc3RpbmF0aW9u
UmVjdCk7Ci0KLSAgICAgICAgLy8gV2UgZXhwbGljaXRseSBmbGlwIGNvb3JkaW5hdGVzIHNvIGFz
IHRvIGVuc3VyZSB3ZSBwYWludCB0aGUgaW1hZ2UgcmlnaHQtc2lkZSB1cC4gV2UgZG8gdGhpcyBi
ZWNhdXNlCi0gICAgICAgIC8vIC1bTlNJbWFnZSBDR0ltYWdlRm9yUHJvcG9zZWRSZWN0OmNvbnRl
eHQ6aGludHM6XSBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGUgcmV0dXJuZWQgaW1hZ2Ugd2ls
bCByZXNwZWN0Ci0gICAgICAgIC8vIGFueSB0cmFuc2Zvcm1zIGFwcGxpZWQgdG8gdGhlIGNvbnRl
eHQgb3IgYW55IHNwZWNpZmllZCBoaW50cy4KLSAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RN
KGNvbnRleHQsIDAsIHBhdHRlcm5IZWlnaHQpOwotICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShj
b250ZXh0LCAxLCAtMSk7Ci0KLSAgICAgICAgTlNSZWN0IGRvdFJlY3QgPSBOU01ha2VSZWN0KG9m
ZnNldFBvaW50LngoKSwgcGF0dGVybkhlaWdodCAtIG9mZnNldFBvaW50LnkoKSwgcGF0dGVybldp
ZHRoLCBwYXR0ZXJuSGVpZ2h0KTsgLy8gQWRqdXN0IHkgcG9zaXRpb24gYXMgd2UgZmxpcHBlZCBj
b29yZGluYXRlcy4KLQotICAgICAgICAvLyBGSVhNRTogUmF0aGVyIHRoYW4gZ2V0dGluZyB0aGUg
TlNJbWFnZSBhbmQgdGhlbiBwaWNraW5nIHRoZSBDR0ltYWdlIGZyb20gaXQsIHdlIHNob3VsZCBk
byB3aGF0IGlPUyBkb2VzIGFuZAotICAgICAgICAvLyBqdXN0IGxvYWQgdGhlIENHSW1hZ2UgaW4g
dGhlIGZpcnN0IHBsYWNlLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAg
ICAgICBDR0ltYWdlUmVmIGNnSW1hZ2UgPSBbaW1hZ2UgQ0dJbWFnZUZvclByb3Bvc2VkUmVjdDom
ZG90UmVjdCBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3Jh
cGhpY3NQb3J0OmNvbnRleHQgZmxpcHBlZDpOT10gaGludHM6bnVsbHB0cl07Ci0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIENHQ29udGV4dERyYXdUaWxlZEltYWdlKGNvbnRl
eHQsIE5TUmVjdFRvQ0dSZWN0KGRvdFJlY3QpLCBjZ0ltYWdlKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3JXaXRoQ29sb3IoY29udGV4dCwgW2ZhbGxiYWNrQ29s
b3IgQ0dDb2xvcl0pOwotICAgICAgICBDR0NvbnRleHRGaWxsUmVjdChjb250ZXh0LCBkZXN0aW5h
dGlvblJlY3QpOwotICAgIH0KLSNlbHNlCi0gICAgV0tSZWN0RmlsbFVzaW5nT3BlcmF0aW9uKGNv
bnRleHQsIGRlc3RpbmF0aW9uUmVjdCwga0NHQ29tcG9zaXRlU292ZXIpOwotI2VuZGlmCisgICAg
Ly8gQ29jb2EgcGxhdGZvcm1zIHVzZSBSZW5kZXJUaGVtZTo6ZHJhd0xpbmVGb3JEb2N1bWVudE1h
cmtlcigpIHRvIHBhaW50IHRoZSBwbGF0Zm9ybSBkb2N1bWVudCBtYXJrZXJzLgogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAppbmRleCBjNjhlNjA2
YzA4NDQ3YzNiNDAyZDE4N2YyZTY5MmY1N2NkNjljZjI5Li4xMjA2MzhiMjUxYjQyOTdmOWEzZGZl
MTNmNTM1ZWJhYWE5NzcyZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKQEAgLTE4NSwx
MSArMTg1LDYgQEAgc3RhdGljIGNvbnN0IENvbG9yJiBncmFtbWFyUGF0dGVybkNvbG9yKCkgewog
ICAgIHJldHVybiBncmFtbWFyQ29sb3I7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojp1cGRh
dGVEb2N1bWVudE1hcmtlclJlc291cmNlcygpCi17Ci0gICAgLy8gVW5uZWNlc3NhcnksIHNpbmNl
IG91ciBkb2N1bWVudCBtYXJrZXJzIGRvbid0IHVzZSByZXNvdXJjZXMuCi19Ci0KIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50LCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7CiAg
ICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3Bw
CmluZGV4IDJmODIxNjFiM2Y0ODkxYzBjYjQ5ZGFjYjEyZmE0YzUyMGFiNjAzYmEuLjVlYWNlMTA4
ODY2N2MyMjliNWFmYzM5ZWM5MzY4N2UwZDQ1YTUyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERp
cmVjdDJELmNwcApAQCAtMzE5LDEwICszMTksNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRoLAog
ewogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6dXBkYXRlRG9jdW1lbnRNYXJrZXJSZXNvdXJj
ZXMoKQotewotfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1h
cmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2Vy
TGluZVN0eWxlIHN0eWxlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL3dhay9XS0dyYXBoaWNzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dh
ay9XS0dyYXBoaWNzLm1tCmluZGV4IDY4ZWI2ZGVlN2I2YzcyY2RkZTc5Y2JhYzkxZjZlMjVmNzAx
YTQ2MDguLmRmYzZlMGVlMzVmN2Y4ZjQ5ZmNkNjA5MzAyYjc0ZDMxYzk2MGJlZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGljcy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjUsMTYgKzI1LDExIEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV0tH
cmFwaGljcy5oIgotI2ltcG9ydCAiV0tHcmFwaGljc0ludGVybmFsLmgiCiAKICNpZiBQTEFURk9S
TShJT1MpCiAKLSNpbXBvcnQgIkZvbnRDYXNjYWRlLmgiCi0jaW1wb3J0ICJQbGF0Zm9ybVNjcmVl
bi5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZEludGVybmFsLmgiCi0jaW1wb3J0IDxJbWFnZUlP
L0ltYWdlSU8uaD4KICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+Ci0jaW1w
b3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBA
IC01NiwyOCArNTEsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIF9GaWxsUmVjdHNVc2luZ09wZXJh
dGlvbihDR0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgQ0dSZWN0KgogICAgIENHQ29udGV4dFNl
dENvbXBvc2l0ZU9wZXJhdGlvbihjb250ZXh0LCBvbGRPcCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
dm9pZCBfRmlsbFJlY3RVc2luZ09wZXJhdGlvbihDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0
IHJlY3QsIENHQ29tcG9zaXRlT3BlcmF0aW9uIG9wKQotewotICAgIGlmIChyZWN0LnNpemUud2lk
dGggPiAwICYmIHJlY3Quc2l6ZS5oZWlnaHQgPiAwKSB7Ci0gICAgICAgIF9GaWxsUmVjdHNVc2lu
Z09wZXJhdGlvbiAoY29udGV4dCwgJnJlY3QsIDEsIG9wKTsKLSAgICB9Ci19Ci0KIHZvaWQgV0tS
ZWN0RmlsbChDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IGFSZWN0KQogewogICAgIGlmIChh
UmVjdC5zaXplLndpZHRoID4gMCAmJiBhUmVjdC5zaXplLmhlaWdodCA+IDApIHsKICAgICAgICAg
Q0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKLSAgICAgICAgX0ZpbGxSZWN0VXNpbmdPcGVy
YXRpb24oY29udGV4dCwgYVJlY3QsIGtDR0NvbXBvc2l0ZUNvcHkpOwotICAgICAgICBDR0NvbnRl
eHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOwotICAgIH0KLX0KLQotdm9pZCBXS1JlY3RGaWxsVXNp
bmdPcGVyYXRpb24oQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCBhUmVjdCwgV0tDb21wb3Np
dGVPcGVyYXRpb24gY29tcG9zaXRlT3BlcmF0aW9uKQotewotICAgIENPTVBJTEVfQVNTRVJUKHNp
emVvZihXS0NvbXBvc2l0ZU9wZXJhdGlvbikgPT0gc2l6ZW9mKENHQ29tcG9zaXRlT3BlcmF0aW9u
KSwgIldLQ29tcG9zaXRlT3BlcmF0aW9uIG11c3QgYmUgdGhlIHNhbWUgc2l6ZSBhcyBDR0NvbXBv
c2l0ZU9wZXJhdGlvbi4iKTsKLSAgICBpZiAoYVJlY3Quc2l6ZS53aWR0aCA+IDAgJiYgYVJlY3Qu
c2l6ZS5oZWlnaHQgPiAwLjApIHsKLSAgICAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0
KTsKLSAgICAgICAgX0ZpbGxSZWN0VXNpbmdPcGVyYXRpb24oY29udGV4dCwgYVJlY3QsIHN0YXRp
Y19jYXN0PENHQ29tcG9zaXRlT3BlcmF0aW9uPihjb21wb3NpdGVPcGVyYXRpb24pKTsKKyAgICAg
ICAgaWYgKGFSZWN0LnNpemUud2lkdGggPiAwICYmIGFSZWN0LnNpemUuaGVpZ2h0ID4gMCkKKyAg
ICAgICAgICAgIF9GaWxsUmVjdHNVc2luZ09wZXJhdGlvbihjb250ZXh0LCAmYVJlY3QsIDEsIGtD
R0NvbXBvc2l0ZUNvcHkpOwogICAgICAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQp
OwogICAgIH0KIH0KQEAgLTk0LDgzICs3Myw0IEBAIENHQ29udGV4dFJlZiBXS0dldEN1cnJlbnRH
cmFwaGljc0NvbnRleHQodm9pZCkKICAgICByZXR1cm4gdGhyZWFkQ29udGV4dC0+Y3VycmVudENH
Q29udGV4dDsKIH0KIAotc3RhdGljIE5TU3RyaW5nICppbWFnZVJlc291cmNlUGF0aChjb25zdCBj
aGFyKiBpbWFnZUZpbGUsIHVuc2lnbmVkIHNjYWxlRmFjdG9yKQotewotICAgIE5TU3RyaW5nICpm
aWxlTmFtZSA9IHNjYWxlRmFjdG9yID09IDEgPyBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJp
bmc6aW1hZ2VGaWxlXSA6IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJXNAJWR4IiwgaW1h
Z2VGaWxlLCBzY2FsZUZhY3Rvcl07Ci0jaWYgUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKLSAgICBO
U0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFw
cGxlLldlYkNvcmUiXTsKLSAgICByZXR1cm4gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5h
bWUgb2ZUeXBlOkAicG5nIl07Ci0jZWxzZQotICAgIC8vIFdvcmthcm91bmQgZm9yIDxyZGFyOi8v
cHJvYmxlbS83NzgwNjY1PiBDRkJ1bmRsZUNvcHlSZXNvdXJjZVVSTCB0YWtlcyBhIGxvbmcgdGlt
ZSBvbiBpUGhvbmUgM0cuCi0gICAgTlNTdHJpbmcgKmltYWdlRGlyZWN0b3J5ID0gQCIvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvV2ViQ29yZS5mcmFtZXdvcmsiOwotICAgIHJldHVy
biBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVALyVALnBuZyIsIGltYWdlRGlyZWN0b3J5
LCBmaWxlTmFtZV07Ci0jZW5kaWYKLX0KLQotQ0dJbWFnZVJlZiBXS0dyYXBoaWNzQ3JlYXRlSW1h
Z2VGcm9tQnVuZGxlV2l0aE5hbWUoY29uc3QgY2hhciAqaW1hZ2VfZmlsZSkKLXsKLSAgICBpZiAo
IWltYWdlX2ZpbGUpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgQ0dJbWFnZVJlZiBpbWFn
ZSA9IG51bGxwdHI7Ci0gICAgTlNEYXRhICppbWFnZURhdGEgPSBudWxscHRyOwotICAgIGZvciAo
dW5zaWduZWQgc2NhbGVGYWN0b3IgPSBzY3JlZW5TY2FsZUZhY3RvcigpOyBzY2FsZUZhY3RvciA+
IDA7IC0tc2NhbGVGYWN0b3IpIHsKLSAgICAgICAgaW1hZ2VEYXRhID0gW05TRGF0YSBkYXRhV2l0
aENvbnRlbnRzT2ZGaWxlOmltYWdlUmVzb3VyY2VQYXRoKGltYWdlX2ZpbGUsIHNjYWxlRmFjdG9y
KV07Ci0gICAgICAgIEFTU0VSVChzY2FsZUZhY3RvciAhPSBzY3JlZW5TY2FsZUZhY3RvcigpIHx8
IGltYWdlRGF0YSk7Ci0gICAgICAgIGlmIChpbWFnZURhdGEpCi0gICAgICAgICAgICBicmVhazsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKGltYWdlRGF0YSkgewotICAgICAgICBSZXRhaW5QdHI8Q0dE
YXRhUHJvdmlkZXJSZWY+IGRhdGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVh
dGVXaXRoQ0ZEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEYXRhUmVmPihpbWFnZURhdGEpKSk7Ci0g
ICAgICAgIGltYWdlID0gQ0dJbWFnZUNyZWF0ZVdpdGhQTkdEYXRhUHJvdmlkZXIoZGF0YVByb3Zp
ZGVyLmdldCgpLCBudWxscHRyLCBOTywga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCk7Ci0gICAg
fQotCi0gICAgcmV0dXJuIGltYWdlOwotfQotCi1zdGF0aWMgdm9pZCBXS0RyYXdQYXR0ZXJuQml0
bWFwKHZvaWQgKmluZm8sIENHQ29udGV4dFJlZiBjKSAKLXsKLSAgICBDR0ltYWdlUmVmIGltYWdl
ID0gKENHSW1hZ2VSZWYpaW5mbzsKLSAgICBDR0Zsb2F0IHNjYWxlID0gc2NyZWVuU2NhbGVGYWN0
b3IoKTsKLSAgICBDR0NvbnRleHREcmF3SW1hZ2UoYywgQ0dSZWN0TWFrZSgwLCAwLCBDR0ltYWdl
R2V0V2lkdGgoaW1hZ2UpIC8gc2NhbGUsIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2UpIC8gc2NhbGUp
LCBpbWFnZSk7ICAgIAotfQotCi1zdGF0aWMgdm9pZCBXS1JlbGVhc2VQYXR0ZXJuQml0bWFwKHZv
aWQgKmluZm8pIAotewotICAgIENHSW1hZ2VSZWxlYXNlKHJlaW50ZXJwcmV0X2Nhc3Q8Q0dJbWFn
ZVJlZj4oaW5mbykpOwotfQotCi1zdGF0aWMgY29uc3QgQ0dQYXR0ZXJuQ2FsbGJhY2tzIFdLUGF0
dGVybkJpdG1hcENhbGxiYWNrcyA9IAotewotICAgIDAsIFdLRHJhd1BhdHRlcm5CaXRtYXAsIFdL
UmVsZWFzZVBhdHRlcm5CaXRtYXAKLX07Ci0KLUNHUGF0dGVyblJlZiBXS0NyZWF0ZVBhdHRlcm5G
cm9tQ0dJbWFnZShDR0ltYWdlUmVmIGltYWdlUmVmKQotewotICAgIC8vIHJldGFpbiBpbWFnZSBz
aW5jZSBpdCdzIGZyZWVkIGJ5IG91ciBjYWxsYmFjawotICAgIENHSW1hZ2VSZXRhaW4oaW1hZ2VS
ZWYpOwotCi0gICAgQ0dGbG9hdCBzY2FsZSA9IHNjcmVlblNjYWxlRmFjdG9yKCk7Ci0gICAgcmV0
dXJuIENHUGF0dGVybkNyZWF0ZSgodm9pZCopaW1hZ2VSZWYsIENHUmVjdE1ha2UoMCwgMCwgQ0dJ
bWFnZUdldFdpZHRoKGltYWdlUmVmKSAvIHNjYWxlLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlUmVm
KSAvIHNjYWxlKSwgQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eSwgQ0dJbWFnZUdldFdpZHRoKGlt
YWdlUmVmKSAvIHNjYWxlLCBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlUmVmKSAvIHNjYWxlLCBrQ0dQ
YXR0ZXJuVGlsaW5nQ29uc3RhbnRTcGFjaW5nLCAxIC8qaXNDb2xvcmVkKi8sICZXS1BhdHRlcm5C
aXRtYXBDYWxsYmFja3MpOwotfQotCi12b2lkIFdLU2V0UGF0dGVybihDR0NvbnRleHRSZWYgY29u
dGV4dCwgQ0dQYXR0ZXJuUmVmIHBhdHRlcm4sIGJvb2wgZmlsbCwgYm9vbCBzdHJva2UpIAotewot
ICAgIGlmIChwYXR0ZXJuID09IE5VTEwpCi0gICAgICAgIHJldHVybjsKLQotICAgIENHRmxvYXQg
cGF0dGVybkFscGhhID0gMTsKLSAgICBDR0NvbG9yU3BhY2VSZWYgY29sb3JzcGFjZSA9IENHQ29s
b3JTcGFjZUNyZWF0ZVBhdHRlcm4oTlVMTCk7Ci0gICAgaWYgKGZpbGwpIHsKLSAgICAgICAgQ0dD
b250ZXh0U2V0RmlsbENvbG9yU3BhY2UoY29udGV4dCwgY29sb3JzcGFjZSk7Ci0gICAgICAgIENH
Q29udGV4dFNldEZpbGxQYXR0ZXJuKGNvbnRleHQsIHBhdHRlcm4sICZwYXR0ZXJuQWxwaGEpOwot
ICAgIH0KLSAgICBpZiAoc3Ryb2tlKSB7Ci0gICAgICAgIENHQ29udGV4dFNldFN0cm9rZUNvbG9y
U3BhY2UoY29udGV4dCwgY29sb3JzcGFjZSk7Ci0gICAgICAgIENHQ29udGV4dFNldFN0cm9rZVBh
dHRlcm4oY29udGV4dCwgcGF0dGVybiwgJnBhdHRlcm5BbHBoYSk7Ci0gICAgfQotICAgIENHQ29s
b3JTcGFjZVJlbGVhc2UoY29sb3JzcGFjZSk7Ci19Ci0KICNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3NJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0dyYXBoaWNzSW50
ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZlZDQ3NmYyMmMwNTE1MTlk
YTAyZmQ1MTIxN2VmNmRmNDIzZjg0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3NJ
bnRlcm5hbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaWYgVEFSR0VUX09TX0lQSE9ORQotCi0jaW1wb3J0IDxDb3JlR3JhcGhp
Y3MvQ29yZUdyYXBoaWNzLmg+Ci0KLXR5cGVkZWYgaW50IFdLQ29tcG9zaXRlT3BlcmF0aW9uOwot
Ci0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLXZvaWQgV0tSZWN0
RmlsbFVzaW5nT3BlcmF0aW9uKENHQ29udGV4dFJlZiwgQ0dSZWN0LCBXS0NvbXBvc2l0ZU9wZXJh
dGlvbik7Ci1DR0ltYWdlUmVmIFdLR3JhcGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFt
ZShjb25zdCBjaGFyICppbWFnZV9maWxlKTsKLUNHUGF0dGVyblJlZiBXS0NyZWF0ZVBhdHRlcm5G
cm9tQ0dJbWFnZShDR0ltYWdlUmVmIGltYWdlUmVmKTsKLXZvaWQgV0tTZXRQYXR0ZXJuKENHQ29u
dGV4dFJlZiBjb250ZXh0LCBDR1BhdHRlcm5SZWYgcGF0dGVybiwgYm9vbCBmaWxsLCBib29sIHN0
cm9rZSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvLyBUQVJH
RVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
aW5kZXggNWVhYzc0YWJkMjFiMTE2YTczZjUwNGMyNWMyYzE5M2IwMjE0NWJhOC4uMGE3ODRjY2Mz
NGFmMDFkYjEwNjQ4NmZiYzc3MzUxMzNhNTA0YzZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNzI2LDcgKzcyNiw3IEBAIHZvaWQgSW5saW5lVGV4
dEJveDo6cGFpbnRQbGF0Zm9ybURvY3VtZW50TWFya2VyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QKICAgICAgICAgdW5kZXJsaW5lT2Zmc2V0ID0gYmFzZWxpbmUgKyAyOwogICAgIH0K
IAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW5kZXJUaGVt
ZTo6c2luZ2xldG9uKCkuZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihyZW5kZXJlcigpLCBjb250
ZXh0LCBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBzdGFydCwgYm94T3JpZ2luLnkoKSArIHVu
ZGVybGluZU9mZnNldCksIHdpZHRoLCBsaW5lU3R5bGVGb3JNYXJrZWRUZXh0VHlwZShtYXJrZWRU
ZXh0LnR5cGUpKTsKICNlbHNlCiAgICAgY29udGV4dC5kcmF3TGluZUZvckRvY3VtZW50TWFya2Vy
KEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIHN0YXJ0LCBib3hPcmlnaW4ueSgpICsgdW5kZXJs
aW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVTdHlsZUZvck1hcmtlZFRleHRUeXBlKG1hcmtlZFRleHQu
dHlwZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKaW5k
ZXggMzAxNTFkODQ4ZWU0NWNmODVkODg5NDExMzE0MmUwNzIyOWJlMWM0Yy4uYzI4MzBmZThhZGNh
ZDUxZTEyZDQzMWJkNmFmZTEzMzQ5OWRiMzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDb2NvYS5oCkBAIC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUmVuZGVyVGhlbWVDb2NvYSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiBwcml2
YXRlOgorICAgIHZvaWQgZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBSZW5kZXJUZXh0
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3aWR0
aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIGZpbmFsOworCiAjaWYgRU5BQkxFKEFQUExFX1BB
WSkKICAgICB2b2lkIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJl
bmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgcGFp
bnRBcHBsZVBheUJ1dHRvbihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNvY29hLm1tCmluZGV4IGRmMmM3MzFkMDg5Njc2MWQyNzc0MmRkOTNlZTZlMTMxM2Rk
ZmQyOTEuLmMyYzQ1ZDc2ODk0YzEwNmViNWUwMTAyNzBlOTEwNDQwMGIyYzNiODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0yMywxNiArMjMs
MTggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVuZGVyVGhlbWVDb2NvYS5oIgorI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJSZW5kZXJUaGVtZUNvY29hLmgiCiAKICNpZiBFTkFCTEUoQVBQTEVf
UEFZKQogCi0jaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgotI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCi0jaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSA8
cGFsL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmg+Ci0jaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+
CisjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgorI2ltcG9ydCAiUmVuZGVyRWxlbWVudC5o
IgorI2ltcG9ydCAiUmVuZGVyU3R5bGUuaCIKKyNpbXBvcnQgIlJlbmRlclRleHQuaCIKKyNpbXBv
cnQgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgorI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9QYXNzS2l0U1BJLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAogI2lmIFBMQVRG
T1JNKE1BQykKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhQYXNzS2l0KTsKQEAgLTQ1LDEy
ICs0Nyw1NiBAQCBTT0ZUX0xJTktfTUFZX0ZBSUwoUGFzc0tpdCwgUEtEcmF3QXBwbGVQYXlCdXR0
b24sIHZvaWQsIChDR0NvbnRleHRSZWYgY29udGV4dCwgQwogI2VuZGlmIC8vIEVOQUJMRShBUFBM
RV9QQVkpCiAKICNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5o
IgotI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0ICJMb2NhbGl6
ZWRTdHJpbmdzLmgiCisjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2VuZGlm
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIENHQ29sb3JSZWYgY29sb3JGb3JTdHls
ZShEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSwgYm9vbCB1c2VEYXJrTW9kZSkKK3sKKyAg
ICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgLy8gUmVkCisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxp
bmVTdHlsZTo6U3BlbGxpbmc6CisgICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtN
b2RlID8gQ29sb3IgeyAyNTUsIDE0MCwgMTQwLCAyMTcgfSA6IENvbG9yIHsgMjU1LCA1OSwgNDgs
IDE5MSB9KTsKKyAgICAvLyBCbHVlCisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6
RGljdGF0aW9uQWx0ZXJuYXRpdmVzOgorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6
OlRleHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXM6CisgICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKKyAgICAg
ICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUgPyBDb2xvciB7IDQwLCAxNDUsIDI1
NSwgMjE3IH0gOiBDb2xvciB7IDAsIDEyMiwgMjU1LCAxOTEgfSk7CisgICAgLy8gR3JlZW4KKyAg
ICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpHcmFtbWFyOgorICAgICAgICByZXR1cm4g
Y2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgNTAsIDIxNSwgNzUsIDIxNyB9IDog
Q29sb3IgeyAyNSwgMTc1LCA1MCwgMTkxIH0pOworICAgIH0KK30KKwordm9pZCBSZW5kZXJUaGVt
ZUNvY29hOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IFJlbmRlclRleHQmIHJlbmRl
cmVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwg
ZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQoreworICAgIGlmIChj
b250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBj
aXJjbGVDb2xvciA9IGNvbG9yRm9yU3R5bGUoc3R5bGUsIHJlbmRlcmVyLnBhZ2UoKS51c2VTeXN0
ZW1BcHBlYXJhbmNlKCkgJiYgcmVuZGVyZXIucGFnZSgpLnVzZURhcmtBcHBlYXJhbmNlKCkpOwor
CisgICAgLy8gQ2VudGVyIHRoZSB1bmRlcmxpbmUgYW5kIGVuc3VyZSB3ZSBvbmx5IGRyYXcgZW50
aXJlIGRvdHMuCisgICAgRmxvYXRQb2ludCBvZmZzZXRQb2ludCA9IG9yaWdpbjsKKyAgICBmbG9h
dCB3aWR0aE1vZCA9IGZtb2RmKHdpZHRoLCBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKTsK
KyAgICBpZiAoY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCAtIHdpZHRoTW9kID4gY01pc3Nw
ZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0aCkgeworICAgICAgICBmbG9hdCBnYXBJbmNsdWRlV2lk
dGggPSAwOworICAgICAgICBpZiAod2lkdGggPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRo
KQorICAgICAgICAgICAgZ2FwSW5jbHVkZVdpZHRoID0gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5H
YXBXaWR0aDsKKyAgICAgICAgb2Zmc2V0UG9pbnQubW92ZShmbG9vcigod2lkdGhNb2QgKyBnYXBJ
bmNsdWRlV2lkdGgpIC8gMiksIDApOworICAgICAgICB3aWR0aCAtPSB3aWR0aE1vZDsKKyAgICB9
CisKKyAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7
CisgICAgQ0dDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyIHsgY29udGV4dCB9OworICAgIENH
Q29udGV4dFNldEZpbGxDb2xvcldpdGhDb2xvcihjb250ZXh0LCBjaXJjbGVDb2xvcik7CisgICAg
Zm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgeCArPSBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldp
ZHRoKQorICAgICAgICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KGNvbnRleHQsIENHUmVjdE1h
a2Uob2Zmc2V0UG9pbnQueCgpICsgeCwgb2Zmc2V0UG9pbnQueSgpLCBjTWlzc3BlbGxpbmdMaW5l
VGhpY2tuZXNzLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzKSk7CisgICAgQ0dDb250ZXh0U2V0
Q29tcG9zaXRlT3BlcmF0aW9uKGNvbnRleHQsIGtDR0NvbXBvc2l0ZVNvdmVyKTsKKyAgICBDR0Nv
bnRleHRGaWxsUGF0aChjb250ZXh0KTsKK30KKwogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKIHN0
YXRpYyBjb25zdCBhdXRvIGFwcGxlUGF5QnV0dG9uTWluaW11bVdpZHRoID0gMTQwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCBkOThkZTNhOTU5OTE2Yzhm
YWEzNTRkZWRlNTE5OThmODhkOGIwZTljLi5iYTc5YmRhYzcyOTdiMzFiNDZhNmJmNGQ1ZDM3MjE1
YWEzOTgzOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApA
QCAtMTc0LDggKzE3NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYWludEF0dGFjaG1lbnQoY29u
c3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIGZpbmFs
OwogI2VuZGlmCiAKLSAgICB2b2lkIGRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVu
ZGVyVGV4dCYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxv
YXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKSBmaW5hbDsKLQogICAgIGJvb2wgdXNp
bmdEYXJrQXBwZWFyYW5jZShjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdCBmaW5hbDsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCBi
ODg5ZGFjNGQ0YTEyMjFjZDU3ZWViMGZkMTJiYzU1NjEwYzkzYjQzLi4wNWU3ODFhMjMzNzRiODc0
YTBlMzg4OTVlNDFmNzlmNmQwZDIwYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLm1tCkBAIC0zNyw3ICszNyw2IEBACiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIK
ICNpbXBvcnQgIkdlb21ldHJ5VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQu
aCIKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJIVE1MQXR0YWNobWVu
dEVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxN
ZWRpYUVsZW1lbnQuaCIKQEAgLTI5NzMsNTAgKzI5NzIsNiBAQCBib29sIFJlbmRlclRoZW1lTWFj
OjpwYWludEF0dGFjaG1lbnQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgUGFp
bnRJbgogCiAjZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAotc3RhdGljIENH
Q29sb3JSZWYgY29sb3JGb3JTdHlsZShEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSwgYm9v
bCB1c2VEYXJrTW9kZSkKLXsKLSAgICBzd2l0Y2ggKHN0eWxlKSB7Ci0gICAgLy8gUmVkLgotICAg
IGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OlNwZWxsaW5nOgotICAgICAgICByZXR1cm4g
Y2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgMjU1LCAxNDAsIDE0MCwgMjE3IH0g
OiBDb2xvciB7IDI1NSwgNTksIDQ4LCAxOTEgfSk7Ci0gICAgLy8gQmx1ZS4KLSAgICBjYXNlIERv
Y3VtZW50TWFya2VyTGluZVN0eWxlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM6Ci0gICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6VGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFs
dGVybmF0aXZlczoKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpBdXRvY29ycmVj
dGlvblJlcGxhY2VtZW50OgotICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9k
ZSA/IENvbG9yIHsgNDAsIDE0NSwgMjU1LCAyMTcgfSA6IENvbG9yIHsgMCwgMTIyLCAyNTUsIDE5
MSB9KTsKLSAgICAvLyBHcmVlbi4KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpH
cmFtbWFyOgotICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9y
IHsgNTAsIDIxNSwgNzUsIDIxNyB9IDogQ29sb3IgeyAyNSwgMTc1LCA1MCwgMTkxIH0pOwotICAg
IH0KLX0KLQotdm9pZCBSZW5kZXJUaGVtZU1hYzo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihj
b25zdCBSZW5kZXJUZXh0JiByZW5kZXJlciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHls
ZSBzdHlsZSkKLXsKLSAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGF1dG8gY2lyY2xlQ29sb3IgPSBjb2xvckZvclN0eWxlKHN0eWxlLCBy
ZW5kZXJlci5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpICYmIHJlbmRlcmVyLnBhZ2UoKS51
c2VEYXJrQXBwZWFyYW5jZSgpKTsKLQotICAgIC8vIENlbnRlciB0aGUgdW5kZXJsaW5lIGFuZCBl
bnN1cmUgd2Ugb25seSBkcmF3IGVudGlyZXMgZG90cy4KLSAgICBGbG9hdFBvaW50IG9mZnNldFBv
aW50ID0gb3JpZ2luOwotICAgIGZsb2F0IHdpZHRoTW9kID0gZm1vZGYod2lkdGgsIGNNaXNzcGVs
bGluZ0xpbmVQYXR0ZXJuV2lkdGgpOwotICAgIGlmIChjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldp
ZHRoIC0gd2lkdGhNb2QgPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKSB7Ci0gICAg
ICAgIGZsb2F0IGdhcEluY2x1ZGVXaWR0aCA9IDA7Ci0gICAgICAgIGlmICh3aWR0aCA+IGNNaXNz
cGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGgpCi0gICAgICAgICAgICBnYXBJbmNsdWRlV2lkdGggPSBj
TWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoOwotICAgICAgICBvZmZzZXRQb2ludC5tb3Zl
KGZsb29yKCh3aWR0aE1vZCArIGdhcEluY2x1ZGVXaWR0aCkgLyAyKSwgMCk7Ci0gICAgICAgIHdp
ZHRoIC09IHdpZHRoTW9kOwotICAgIH0KLQotICAgIENHQ29udGV4dFJlZiBjdHggPSBjb250ZXh0
LnBsYXRmb3JtQ29udGV4dCgpOwotICAgIENHQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlciB7
IGN0eCB9OwotICAgIENHQ29udGV4dFNldEZpbGxDb2xvcldpdGhDb2xvcihjdHgsIGNpcmNsZUNv
bG9yKTsKLSAgICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4ICs9IGNNaXNzcGVsbGluZ0xp
bmVQYXR0ZXJuV2lkdGgpCi0gICAgICAgIENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QoY3R4LCBD
R1JlY3RNYWtlKG9mZnNldFBvaW50LngoKSArIHgsIG9mZnNldFBvaW50LnkoKSwgY01pc3NwZWxs
aW5nTGluZVRoaWNrbmVzcywgY01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcykpOwotICAgIENHQ29u
dGV4dFNldENvbXBvc2l0ZU9wZXJhdGlvbihjdHgsIGtDR0NvbXBvc2l0ZVNvdmVyKTsKLSAgICBD
R0NvbnRleHRGaWxsUGF0aChjdHgpOwotfQotCiBib29sIFJlbmRlclRoZW1lTWFjOjp1c2luZ0Rh
cmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlck9iamVjdCYgbykgY29uc3QKIHsKICNpZiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347809</attachid>
            <date>2018-08-22 09:40:22 -0700</date>
            <delta_ts>2018-08-23 16:47:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188828-20180822094021.patch</filename>
            <type>text/plain</type>
            <size>51480</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M3ZDQ2ZDc3ZmQ5ZjQ0
NTMxMjk1YjIwMTE2NTI3NDM2NmViZmY0NS4uZDEzMzY4OGU4NDVhODQwMDYyNDFjM2VlMzliNjM3
NjUxY2U5NjQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE4LTA4LTIyICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBTcGVsbGluZyBkb3RzIGRv
IG5vdCBzY2FsZSB3aXRoIHBhZ2Ugb24gaU9TOyBzaGFyZSBzcGVsbGluZyBkb3QgcGFpbnRpbmcg
Y29kZSBiZXR3ZWVuIE1hYyBhbmQgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODg4MjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1OTY2NDAz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBs
b29rIG9mIHRoZSBzcGVsbGluZyBkb3RzIG9uIE1hYyBhbmQgaU9TIGFyZSBpZGVudGljYWwgdXAg
dG8gY29sb3IuIFRvd2FyZHMgbWFraW5nIHRoZQorICAgICAgICBzcGVsbGluZyBkb3RzIGluIFdl
YktpdCBvbiBpT1MgbW9yZSBjbG9zZWx5IG1hdGNoIHRoZSBsb29rIG9mIHRoZSBzcGVsbGluZyBk
b3RzIGluIFVJS2l0LQorICAgICAgICBhcHBzLCBzdGFuZGFyZGl6ZSBvbiB1c2luZyB0aGUgc2Ft
ZSBwYWludGluZyBjb2RlIGZvciBib3RoIE1hYyBhbmQgaU9TLgorCisgICAgICAgIEN1cnJlbnRs
eSBpT1MgdXNlcyBiaXRtYXBzIHRvIHJlbmRlciB0aGUgc3BlbGxpbmcgZG90cyBhbmQgZG9lcyBu
b3QgYWNjb3VudCBmb3IgdXNlci9DU1MKKyAgICAgICAgem9vbWluZy4gQXMgYSByZXN1bHQsIHRo
ZSBzcGVsbGluZyBkb3RzIG9uIGlPUyByZW5kZXIgd2l0aCBhcnRpZmFjdHMgKGUuZy4gdHJ1bmNh
dGVkIGRvdHMpLgorICAgICAgICBBIHNpZGUgYmVuZWZpdCBvZiBoYXZpbmcgaU9TIHNoYXJlIHRo
ZSBzYW1lIHBhaW50aW5nIGNvZGUgYXMgTWFjIGlzIHRoYXQgaU9TIHdpbGwgbm93IHBhaW50Cisg
ICAgICAgIHRoZSBkb3RzIHByb2dyYW1tYXRpY2FsbHkgYW5kIHdlIGF2b2lkIGJvdGggdGhlIG5l
ZWQgdG8gdXNlIGJpdG1hcHMgYW5kIGZpeCB0aGUgYnVncyBpbgorICAgICAgICB0aGUgcGFpbnRp
bmcgb2YgdGhlIGJpdG1hcCBkb3RzIHdpdGggcmVzcGVjdCB0byB6b29taW5nLgorCisgICAgICAg
ICogUmVzb3VyY2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIFJlc291cmNlcy9EaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVz
RG90QDJ4LnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvU3BlbGxpbmdEb3QucG5n
OiBSZW1vdmVkLgorICAgICAgICAqIFJlc291cmNlcy9TcGVsbGluZ0RvdEAyeC5wbmc6IFJlbW92
ZWQuCisgICAgICAgICogUmVzb3VyY2VzL1NwZWxsaW5nRG90QDN4LnBuZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFn
ZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9y
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVz
b3VyY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpmaW5kSW1hZ2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRG90UGF0dGVybik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2Vy
UmVzb3VyY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3Jh
cGhpY3NDb250ZXh0Q0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6dXBkYXRlRG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGljcy5tbToKKyAg
ICAgICAgKFdLUmVjdEZpbGwpOiBJbmNvcnBvcmF0ZWQgdGhlIGxvZ2ljIGZyb20gX0ZpbGxSZWN0
VXNpbmdPcGVyYXRpb24oKS4KKyAgICAgICAgKF9GaWxsUmVjdFVzaW5nT3BlcmF0aW9uKTogRGVs
ZXRlZDsgbW92ZWQgdGhlIGxvZ2ljIGludG8gV0tSZWN0RmlsbCgpIHNpbmNlIFdLUmVjdEZpbGwo
KQorICAgICAgICBpcyBub3cgdGhlIG9ubHkgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24uCisgICAg
ICAgIChXS1JlY3RGaWxsVXNpbmdPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoaW1hZ2VS
ZXNvdXJjZVBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV0tHcmFwaGljc0NyZWF0ZUltYWdlRnJv
bUJ1bmRsZVdpdGhOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdLRHJhd1BhdHRlcm5CaXRtYXAp
OiBEZWxldGVkLgorICAgICAgICAoV0tSZWxlYXNlUGF0dGVybkJpdG1hcCk6IERlbGV0ZWQuCisg
ICAgICAgIChXS1NldFBhdHRlcm4pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy93
YWsvV0tHcmFwaGljc0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnRQ
bGF0Zm9ybURvY3VtZW50TWFya2VyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
b2NvYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6Y29sb3JGb3JTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZUNvY29hOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKTogTW92ZWQgZnJvbSBSZW5kZXJUaGVt
ZU1hYy4gSSByZW5hbWVkCisgICAgICAgIHRoZSBsb2NhbCB2YXJpYWJsZSBjdHggdG8gY29udGV4
dCBhbmQgZml4ZWQgYSB0eXBlIGluIGEgY29tbWVudCB3aGlsZSBtb3ZpbmcgdGhpcyBjb2RlLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRm9yU3R5bGUpOiBE
ZWxldGVkOyBtb3ZlZCB0byBjbGFzcyBSZW5kZXJUaGVtZUNvY29hLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkOyBt
b3ZlZCB0byBjbGFzcyBSZW5kZXJUaGVtZUNvY29hLgorCiAyMDE4LTA4LTIxICBNZWdhbiBHYXJk
bmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFZpc2libGVQb3Np
dGlvbiB0byBjYWxjdWxhdGUgc2VsZWN0aW9uIHJhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUmVzb3VyY2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nIGIv
U291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNE
b3QucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmUxMGY4Y2E2NjcwMjBkZGRi
OGJlODRmOTY4NDk1MTc0Mzg1MDYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE4
Mwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkVJYGM2ITNIRl5kfDd1NE5PMlo7TD40bkphMGBQ
bEJnM3BZNTxvJFAKeldSRDxVMjhKcUMyOE09YTI4TiZpZiVIb1RoRWY5dGhGMXY7M3wyRTM3e3Yx
QCNVRko4czxyaVdhU1ctciNkNlMpCno+d3RtKSFAO1prKEdnbEl0ITJ+cD1gJVZgKiErUkx7TT9U
MWsmSHFDXkY2KzgoKWx4QUBpYkd6ZUNPWGNQcyFZMwphZTg9RihCen1fRlplfWpmQU89cllLYkxo
KjJ+N1pgTUt1aW8KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvRGljdGF0
aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9SZXNv
dXJjZXMvRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmMzY5ZmI0ODY5ZGZmOTkwNjJiZDYwMzJjZWQyOTkwMDhh
MjU3YmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjY3CnpjbWVBU0BOPyhvbEh5
YHVWQnEhaWEwdnBeOTYtIyohM0hHJXZFS2c7cSZOI2FCOHdScXhQP0tPa3p2KngzODBgdAp6dlBZ
MEYxNEVUNjE0QmJJMUg7ZSVLPjgmRUwjWTcrIT5hQGEyQ0VxaTRDNDhkOypZdWspbFQkdWFTVy1y
PCNXb0sKej55VSM0IV4yNFAkakoqQD1iZ1RFJUlrIXhpMGoyX2orSHEmZHFiYClOVnBleUQxUmR0
cFU/TXxyJGMrVHpPZ3pqCnpibGBgfHpWbjU0aTx2KiV2dXVDZjlVOH1RcHlFaUhsX1BVRGdUQWst
VXcqKDxKe1FGalR8KjZheHBLd1IzKk83Rgp6QFZkYXx6LVcrPlpFM3BuTHcmVU9BIzs3TThgOFNW
RzlubVErS01lZ1pwOzdSVlghKUI8R3xUPkc4NT1IMjJXUSUKSm12djRGTyN0QE9TaUFyTAoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdC5wbmcgYi9Tb3Vy
Y2UvV2ViQ29yZS9SZXNvdXJjZXMvU3BlbGxpbmdEb3QucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3NjFhOWI3ODhkNDQwNjI4OTJjNWQzNzYyNjg2ODc0ZWYwNzFmNTI0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE5NQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZw
XkVJYGM2ITMtcHV3Y0BeajFreFJTOVReeXwtTUhjKFZGY3QkbWJnWmcKejFtfnhmbHFWTFlHQn5F
PkMjNVFRPHxkfTYyQmp2WlIySDYwd0UtJVU0KTYoYXtlU2k5enR5WSVoS0sqfXBZWUdZCno7YWA5
TVV3UWR8O1N2QTt8Mks0RnkkZSp2U3JYKEk0Q0kwVkwkSDVeNVhiXmc3c3JyX1RTKkJDREd3NDdr
YGtYTQpnQiV+JWtXOGc0Z1Y2PGoxNE9fQWhzRF4+VCk3OCZxb2xgOyswRGNvaG8mVyM8CgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL1NwZWxsaW5nRG90QDJ4LnBuZyBiL1Nv
dXJjZS9XZWJDb3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZhOGUzMWMyZGFhNTgzZTA0MzVhNTNhNGJjMWJlMzUzYjEzNTBlZjcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjU2CnpjbWVBU0BOPyhvbEh5YHVWQnEh
aWEwdnBeOTYtIyohM0hHJXZFS2c7cSZOI2FCOHdScXhQP0tPa3p2KngzODBgdAp6dlBZMEYxNEVU
NjE0QmJJMUglXn0tRXh0RUF2ZDBaO1lBSnVnSDFPQmdMRmptYk1efEwrQlEhWSRCPkYhQSpWS1MK
ekg5MUhlXypubnQ/bjRERGkoZ1RHekshfmNCQ2RQZ0E2JDg0e2ojTHtnS3FtfSYxKGY2VXVNXzA9
VTxPfV9TMjZlCnpvbmNMYDtXTzd6UnRDcWZvbXRKXzg3OEVMY1Jre1dOcVheSD5VcU1mQiMmVD8o
XmRTMzhPfE50YlZQd2thZjR2VQp6e2hzOHs7Kip4I1o4cWU7Y0o8TDsmSVgoUjNQcmFNPHVtQVAp
eEdnM154cz5jaXhAbXp7YW5eTEJ7VHM1b3xheDUKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvU3BlbGxpbmdEb3RAM3gucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2Vz
L1NwZWxsaW5nRG90QDN4LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFiN2Y3
YWZlNzg4OTUzMGNhN2M4NzM3ODU0N2MzNGUwYWEwYjAyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKbGl0ZXJhbCAyNzAKemNtVitwMHJDRWNQKTxoOzNLfExrMDAwZTFOSkxUcTAwMGFDMDAwUkgx
XkBzNjJEcl5zMDAwMFBiVlhRblEqVU47CnpjVlRqNjA2fURMVnIzdm5aREQ2K1FlfE9lZDJ6e1FK
T0JVeXV0YEtnUkN3QlNrK0JWZkZjM3hXcXpzWmVyOHtRdQp6MjRONzIpUjk7T0h0LXJRc280TWxs
SDFHQWFnT2FHVTtkVkx7X2xXO1dmJXkkISMoVV8yUyslLTZUSCRtUXI2QUYKelp9Pj8/byVzUjM2
IzQtdl5+OCpAPXB0Z1chfW98ZkZWQGgyXllCOzVCblVIS2pGIWM+el92VFB6fmFJeHBxcn4rCno2
fk1rbFR5fnx6UzE+PDhJSlVyWDJLflUmdjIrKERMSk9vYyopLX1ZV3o5QylXfns0P1p1JEVrRHQh
YlAwR3pCawpVMU09K3hCPiheYjA3KnFvTTZOPCRnMCVse08jbERACgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNhMTkxZDU3NjJk
ZmRmNmVmNzBjMzNjZTlkZWZlMDc0NWY3MzBiMjguLmRlM2U0MDE4YzIwMDVmZTc0ZmY1NTZiOGMx
NmQwNTE3M2M4OGQxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTU3LDcgKzU3LDYgQEAKIAkJMDFEM0NGODUxNEJEMEEzMDAw
RkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDFEM0NGN0YxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29u
dGV4dE9iamVjdC5oICovOyB9OwogCQkwMUQzQ0Y4NjE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xT
aGFyZWRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDFEM0NGODAxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCAq
LzsgfTsKIAkJMDFEM0NGODcxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMUQzQ0Y4MTE0
QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuaCAqLzsgfTsKLQkJMDFFNkMyRTQx
MTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxsaW5nRG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDFFNkMyRTMxMTk0QjI4MjAwNTA4MjFDIC8q
IFNwZWxsaW5nRG90QDJ4LnBuZyAqLzsgfTsKIAkJMDU2MkY5NjExNTczRjg4RjAwMzFDQTE2IC8q
IFBsYXRmb3JtTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA1NjJGOTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDVGRDY5RTAxMjg0
NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVT
dGFtcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA2MDI3Q0FEMEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2MDI3Q0FDMEIxQ0JGQzAwMDg4
NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNjMwLDcgKzYyOSw2IEBACiAJCTFDMTJBQzJCMUVFNzc4QUUw
MDc5RTBBMCAvKiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzEyQUMyOTFFRTc3OEFFMDA3OUUw
QTAgLyogRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDMThEQTU5MTgxQUY2QTUwMEM0RUYy
MiAvKiBUZXh0UGFpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUMxOERBNTcxODFBRjZBNTAwQzRFRjIyIC8qIFRleHRQYWludGVyLmggKi87IH07
CiAJCTFDMjFFNTdEMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzIxRTU3QjE4M0VEMUZGMDAx
QzI4OUQgLyogSU9TdXJmYWNlUG9vbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTFDMjQxN0JBMTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0Rv
dEAzeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDMjQxN0I5MTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgKi87IH07CiAJ
CTFDMjRFRUE1MUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyNEVFQTMxQzcyOUNFNDAwODBGOEZD
IC8qIEZvbnRGYWNlU2V0LmggKi87IH07CiAJCTFDMjRFRUE5MUM3MkE3QjQwMDgwRjhGQyAvKiBK
U0ZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQzI0RUVBNzFDNzJBN0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oICovOyB9Owog
CQkxQzY2MjYxMTFDNkU3Q0E2MDBBQjUyN0MgLyogRm9udEZhY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNjYyNjBGMUM2RTdDQTYwMEFCNTI3QyAv
KiBGb250RmFjZS5oICovOyB9OwpAQCAtMzg2Myw3ICszODYxLDYgQEAKIAkJQkU4OEUwREYxNzE1
RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJFODhFMEQzMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNr
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkU4
OEUwRTExNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFODhFMEQ1MTcxNUQyQTIwMDY1OEQ5
OCAvKiBWaWRlb1RyYWNrTGlzdC5jcHAgKi87IH07CiAJCUJFODhFMEUyMTcxNUQyQTIwMDY1OEQ5
OCAvKiBWaWRlb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0Lmgg
Ki87IH07Ci0JCUJFOEM3NTMxMTA2ODEzMjQwMDFFOTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEM3NTMwMTA2
ODEzMjQwMDFFOTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgKi87IH07CiAJCUJFOEVGMDQzMTcxQzhG
RjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEVGMDNGMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJh
Y2suaCAqLzsgfTsKIAkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEVG
MDQxMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmggKi87IH07CiAJCUJFOEVG
MDRCMTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEVGMDQ3MTcxQzkwMTQwMDlCNDhDMyAvKiBK
U1ZpZGVvVHJhY2suaCAqLzsgfTsKQEAgLTQxMjQsOCArNDEyMSw2IEBACiAJCUQwMDBFQkEzMTFC
REFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2
IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDAwMEVEMjgxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZy
YW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEMDAwRUQyNjExQzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMDFBMjdBRTEwQzlCRkQ4
MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3Bs
aXRTdHJpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlEMDJCNjRCMjE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVy
bmF0aXZlc0RvdC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQwMkI2NEIwMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0
ZXJuYXRpdmVzRG90LnBuZyAqLzsgfTsKLQkJRDAyQjY0QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERp
Y3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RAMngucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDJCNjRCMTE0MDg5RTU2MDA2RUZBMjEg
LyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgKi87IH07CiAJCUQw
NUNFRDJBMEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNUNFRDI4MEE0MEJCMkMwMEM1
QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCAqLzsgfTsKIAkJRDA2QzBEOEYwQ0ZEMTE0NjAw
NjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVG
b3JtYXRDb21tYW5kLmggKi87IH07CiAJCUQwN0RFQUJBMEEzNjU1NEEwMENBMzBGOCAvKiBJbnNl
cnRMaXN0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDA3REVBQjgwQTM2NTU0QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggKi87
IH07CkBAIC00Nzk4LDcgKzQ3OTMsNiBAQAogCQlFQkY1MTIxRDE2OTY0OTZDMDA1NkJEMjUgLyog
SlNUeXBlQ29udmVyc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEVCRjUxMjFCMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5o
ICovOyB9OwogCQlFQ0E2ODBDNzFFNjc3MjQ1MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBDNjFF
Njc3MjQ1MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUNDREI4ODExRTRCOEM1OTAwQTFBRUE2IC8q
IFdLQ29udGVudE9ic2VydmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQ0RCODgwMUU0QjhDNTkwMEExQUVBNiAvKiBXS0NvbnRl
bnRPYnNlcnZhdGlvbkludGVybmFsLmggKi87IH07Ci0JCUVDQ0RCODg3MUU0QkI2M0YwMEExQUVB
NiAvKiBXS0dyYXBoaWNzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEVDQ0RCODg2MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50
ZXJuYWwuaCAqLzsgfTsKIAkJRUQyQkE4M0MwOUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFy
a2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFRDJC
QTgzQjA5QTI0QjkxMDA2QzBBQzQgLyogRG9jdW1lbnRNYXJrZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZB
MzcgLyogQ29sb3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEVERTNBNEZGMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVERUM5ODAzMEFFRDdFMTcw
MDU5MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZp
eC5oICovOyB9OwpAQCAtNTE1Nyw3ICs1MTUxLDYgQEAKIAkJMDFEM0NGN0YxNEJEMEEzMDAwRkU5
OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHTENvbnRleHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDFEM0NGODAxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU2hhcmVkT2JqZWN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDFEM0NGODExNEJEMEEzMDAwRkU5OTcwIC8qIFdl
YkdMU2hhcmVkT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdM
U2hhcmVkT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTAxRTZDMkUzMTE5
NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiU3BlbGxpbmdE
b3RAMngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDU2MkY5NjAxNTczRjg4
RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGxhdGZvcm1MYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNUZE
NjlERjEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTVRpbWVTdGFtcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNjAyN0NBQzBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYyOTcsNyArNjI5MCw2IEBACiAJCTFDMThEQTU3MTgxQUY2
QTUwMEM0RUYyMiAvKiBUZXh0UGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUZXh0UGFpbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIxRTU3
QTE4M0VEMUZGMDAxQzI4OUQgLyogSU9TdXJmYWNlUG9vbC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJT1N1cmZhY2VQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUMyMUU1N0IxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFjZVBvb2wuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSU9TdXJmYWNlUG9vbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkxQzI0MTdCOTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxp
bmdEb3RAM3gucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIlNwZWxsaW5nRG90QDN4LnBuZyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDMjRFRUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNl
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRm9udEZhY2VTZXQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzI0RUVBMjFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VT
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEZhY2VTZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzI0RUVBMzFDNzI5Q0U0MDA4MEY4
RkMgLyogRm9udEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9u
dEZhY2VTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDQ5LDcgKzEzMDQx
LDYgQEAKIAkJQkU4OEUwRDUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvVHJhY2tMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8q
IFZpZGVvVHJhY2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVv
VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFODhFMEQ3MTcxNUQy
QTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
VmlkZW9UcmFja0xpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCRThDNzUz
MDEwNjgxMzI0MDAxRTkzRjUgLyogU3BlbGxpbmdEb3QucG5nICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gU3BlbGxpbmdE
b3QucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRThFRjAzRTE3MUM4RkY5MDA5
QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQXVkaW9UcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJF
OEVGMDNGMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNBdWRpb1RyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJFOEVGMDQwMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9UcmFja0xpc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM1NjEsOCArMTM1NTIsNiBAQAogCQlE
MDAwRUQyNjExQzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3ViZnJhbWVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDAxQTI3QUIxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BhY2VTcGxpdFN0cmlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMUEyN0FDMTBDOUJGRDgwMDAy
NkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwYWNlU3BsaXRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDAy
QjY0QjAxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNE
b3QucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
aW1hZ2UucG5nOyBwYXRoID0gRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdC5wbmc7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwMkI2NEIxMTQwODlFNTYwMDZFRkEyMSAv
KiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJE
aWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQwMzZERDhEMjA4RkZDMEMwMEY5RjRCMiAvKiBXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVNUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyog
Rm9ybWF0QmxvY2tDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEMDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTM3LDcgKzE0NTI2LDYgQEAKIAkJRUNBNjgwQzYx
RTY3NzI0NTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRUNBNjgwQzgxRTY3NzMwQjAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0cmluZ1V0aWxpdGllcy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNDREI4ODAxRTRCOEM1OTAwQTFBRUE2IC8q
IFdLQ29udGVudE9ic2VydmF0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tDb250ZW50T2JzZXJ2YXRpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlFQ0NEQjg4NjFFNEJCNjNGMDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLR3JhcGhpY3NJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFRDJCQTgzQjA5QTI0QjkxMDA2QzBB
QzQgLyogRG9jdW1lbnRNYXJrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RG9jdW1lbnRNYXJrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUQ1MDFEQzUw
QjI0OUYyOTAwQUUxOEQ5IC8qIEVkaXRvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBFZGl0b3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUVERTNBNEZGMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTkyNTksMTMgKzE5MjQ3LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJENTBBNEI1
MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXIucG5nICovLAogCQkJCTJE
NTBBNEI2MUNFMTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5nICov
LAotCQkJCUQwMkI2NEIwMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0
ZXJuYXRpdmVzRG90LnBuZyAqLywKLQkJCQlEMDJCNjRCMTE0MDg5RTU2MDA2RUZBMjEgLyogRGlj
dGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgKi8sCiAJCQkJRTU5REQ0Qjcy
MTA5ODI4NTAwM0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi8sCiAJCQkJRTUxNjY5OEYy
MEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgKi8sCi0JCQkJQkU4Qzc1
MzAxMDY4MTMyNDAwMUU5M0Y1IC8qIFNwZWxsaW5nRG90LnBuZyAqLywKLQkJCQkwMUU2QzJFMzEx
OTRCMjgyMDA1MDgyMUMgLyogU3BlbGxpbmdEb3RAMngucG5nICovLAotCQkJCTFDMjQxN0I5MTk5
MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgKi8sCiAJCQkpOwogCQkJbmFtZSA9
IGltYWdlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTM3NSw3ICsyMTM1OCw2
IEBACiAJCQkJRUNDREI4ODAxRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVudE9ic2VydmF0aW9u
SW50ZXJuYWwuaCAqLywKIAkJCQlBMTQ4MzJBNDE4N0Y1MDg3MDBEQTYzQTYgLyogV0tHcmFwaGlj
cy5oICovLAogCQkJCUExNDgzMkE1MTg3RjUwODcwMERBNjNBNiAvKiBXS0dyYXBoaWNzLm1tICov
LAotCQkJCUVDQ0RCODg2MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50ZXJuYWwuaCAq
LywKIAkJCQlBMTQ4MzJBNjE4N0Y1MDg3MDBEQTYzQTYgLyogV0tUeXBlcy5oICovLAogCQkJCUEx
NDgzMkE3MTg3RjUwODcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5jICovLAogCQkJCUExNDgzMkE4
MTg3RjUwODcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5oICovLApAQCAtMzEwNzEsNyArMzEwNTMs
NiBAQAogCQkJCUExNDgzMkJFMTg3RjY0Q0MwMERBNjNBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUNDREI4ODExRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29u
dGVudE9ic2VydmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDgzMkJGMTg3
RjY1MkMwMERBNjNBNiAvKiBXS0dyYXBoaWNzLmggaW4gSGVhZGVycyAqLywKLQkJCQlFQ0NEQjg4
NzFFNEJCNjNGMDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMTQ4MzJDMTE4N0Y2NTdBMDBEQTYzQTYgLyogV0tUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTE0ODMyQzMxODdGNjVERjAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTQ4MzJDNDE4N0Y2NjNDMDBEQTYzQTYgLyogV0tWaWV3LmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxMjk2LDggKzMxMjc3LDYgQEAKIAkJCQkyRDUwQTRCODFDRTEwRTAwMDAxOTgw
NDkgLyogQXR0YWNobWVudFBsYWNlaG9sZGVyQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
QTFBQTlBQjkxRDIzOTExNTAwRkVBREIzIC8qIENvbnRlbnRGaWx0ZXJCbG9ja2VkUGFnZS5odG1s
IGluIFJlc291cmNlcyAqLywKIAkJCQlBMTFFOEMwNTFCMUUyOEY0MDAwM0E3QzcgLyogY29weUN1
cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAv
KiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8s
Ci0JCQkJRDAyQjY0QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRl
cm5hdGl2ZXNEb3RAMngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBG
MDAzQzUyNzcgLyogSUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
MkQ5RjBFMTMxNEZGMUNCRjAwQkEwRkY3IC8qIGxpbmVhclNSR0IuaWNjIGluIFJlc291cmNlcyAq
LywKIAkJCQlFNTlERDRCODIxMDk4Mjg3MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyBp
biBSZXNvdXJjZXMgKi8sCkBAIC0zMTMxOCw5ICszMTI5Nyw2IEBACiAJCQkJQTExRThDMDcxQjFF
MjhGRTAwMDNBN0M3IC8qIG5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVz
b3VyY2VzICovLAogCQkJCUExMUU4QzA4MUIxRTI5MDIwMDAzQTdDNyAvKiBub3J0aFNvdXRoUmVz
aXplQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTExRThDMDkxQjFFMjkwNzAwMDNB
N0M3IC8qIG5vcnRoV2VzdFNvdXRoRWFzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICov
LAotCQkJCUJFOEM3NTMxMTA2ODEzMjQwMDFFOTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgaW4gUmVz
b3VyY2VzICovLAotCQkJCTAxRTZDMkU0MTE5NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAy
eC5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCTFDMjQxN0JBMTk5MkMwNDEwMEVGOTkzOCAvKiBT
cGVsbGluZ0RvdEAzeC5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTkzMTUzQkRDMTQxOTU5QkMw
MEZDRjVCRSAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJ
CTkzNzA5MThEMTQxNkQ4NkIwMDQ3NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lckAyeC5wbmcg
aW4gUmVzb3VyY2VzICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDhjNWE3NzliNzMz
YzkwYTdkZmFiYTdhYjMwMThhNzFkOWM0MTllODcuLmUxMmI1ZmZjY2QwMjUwMzE3NDFkMmVhNzBi
MmViODUyZmIzNzllMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTMzLDggKzkzMyw2IEBAIHZv
aWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgbWFp
bkZyYW1lKCkuZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAgICAgUGFnZUNhY2hl
OjpzaW5nbGV0b24oKS5tYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKnRoaXMp
OwogCi0gICAgR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcygp
OwotCiAgICAgcGFnZU92ZXJsYXlDb250cm9sbGVyKCkuZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0
b3IoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAppbmRleCA1N2IzYmY0NjZmODM0YjVhMWVhMzQ4ZDBkM2JkNDVmM2U1NWNm
NTdiLi40OTdkMmM3OWZkMmNiMDhmYzNkMGNjYmY4ZjhlYTIyNzNjNDMxMDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAt
NDIyLDcgKzQyMiw2IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgY29tcHV0ZVVuZGVybGluZUJv
dW5kc0ZvclRleHQoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0IHdpZHRoLCBib29sIHByaW50aW5n
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBv
aW50JiwgZmxvYXQgd2lkdGgsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMgPSBmYWxz
ZSwgU3Ryb2tlU3R5bGUgPSBTb2xpZFN0cm9rZSk7CiAgICAgdm9pZCBkcmF3TGluZXNGb3JUZXh0
KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBEYXNoQXJyYXkmIHdpZHRocywgYm9vbCBwcmludGlu
ZywgYm9vbCBkb3VibGVMaW5lcyA9IGZhbHNlLCBTdHJva2VTdHlsZSA9IFNvbGlkU3Ryb2tlKTsK
LSAgICBzdGF0aWMgdm9pZCB1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcygpOwogICAgIHZv
aWQgZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgd2lk
dGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dENhaXJvLmNwcAppbmRleCA4Y2ZiMWU5MjI1N2U0MzI1MjcwNmFlYTU0NWI0MjYzOTRmZTk5ZmQ2
Li41Zjg1NzBiMTIxNzA1YTZiYTkxNTA2ZTMxYmVkOTdmNjQ3ODhjZjZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0zMzcsMTEgKzMzNyw2IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBEYXNo
QXJyYXkmCiAgICAgQ2Fpcm86OmRyYXdMaW5lc0ZvclRleHQoKnBsYXRmb3JtQ29udGV4dCgpLCBw
b2ludCwgd2lkdGhzLCBwcmludGluZywgZG91YmxlVW5kZXJsaW5lcywgbV9zdGF0ZS5zdHJva2VD
b2xvciwgbV9zdGF0ZS5zdHJva2VUaGlja25lc3MpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6dXBkYXRlRG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMoKQotewotICAgIC8vIFVubmVjZXNzYXJ5
LCBzaW5jZSBvdXIgZG9jdW1lbnQgbWFya2VycyBkb24ndCB1c2UgcmVzb3VyY2VzLgotfQotCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9h
dFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHls
ZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2Nv
YS5tbQppbmRleCBiNWE5ZDY2OGYxOGE1OTE4YmEyOGM5ZWRlYzBhZGVlYjdlZGZjZDEwLi5iMTU3
ODY1ZGYzZjdjYzkwYmUxZmEwMTIzMTFmOTFiNGM2YjhjMjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRDb2NvYS5tbQpAQCAtNDEsNyArNDEsNiBAQAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQg
IkNvbG9yLmgiCiAjaW1wb3J0ICJXS0dyYXBoaWNzLmgiCi0jaW1wb3J0ICJXS0dyYXBoaWNzSW50
ZXJuYWwuaCIKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTc0LDUxICsxNzMsNiBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8RmxvYXRS
ZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRoLAogI2VuZGlmCiB9CiAKLSNpZiBQTEFURk9STShNQUMp
Ci0KLXN0YXRpYyBOU0ltYWdlICpmaW5kSW1hZ2UoTlNTdHJpbmcqIGZpcnN0Q2hvaWNlTmFtZSwg
TlNTdHJpbmcqIHNlY29uZENob2ljZU5hbWUsIGJvb2wmIHVzaW5nRG90KQotewotICAgIC8vIEV2
ZW50dWFsbHkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZ2V0IHJpZCBvZiB0aGUgc2Vjb25kQ2hvaWNl
TmFtZS4gRm9yIHRoZSB0aW1lIGJlaW5nIHdlIG5lZWQgYm90aCB0byBrZWVwCi0gICAgLy8gdGhp
cyB3b3JraW5nIG9uIGFsbCBwbGF0Zm9ybXMuCi0gICAgTlNJbWFnZSAqaW1hZ2UgPSBbTlNJbWFn
ZSBpbWFnZU5hbWVkOmZpcnN0Q2hvaWNlTmFtZV07Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAg
aW1hZ2UgPSBbTlNJbWFnZSBpbWFnZU5hbWVkOnNlY29uZENob2ljZU5hbWVdOwotICAgIEFTU0VS
VChpbWFnZSk7IC8vIGlmIGltYWdlIGlzIG5vdCBhdmFpbGFibGUsIHdlIHdhbnQgdG8ga25vdwot
ICAgIHVzaW5nRG90ID0gaW1hZ2U7Ci0gICAgcmV0dXJuIGltYWdlOwotfQotCi0vLyBGSVhNRTog
U2hvdWxkIHVzZSBSZXRhaW5QdHIgaW5zdGVhZCBvZiBoYW5kd3JpdHRlbiByZXRhaW4vcmVsZWFz
ZS4KLXN0YXRpYyBOU0ltYWdlICpzcGVsbGluZ0ltYWdlID0gbnVsbHB0cjsKLXN0YXRpYyBOU0lt
YWdlICpncmFtbWFySW1hZ2UgPSBudWxscHRyOwotc3RhdGljIE5TSW1hZ2UgKmNvcnJlY3Rpb25J
bWFnZSA9IG51bGxwdHI7Ci0KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0gKElPUykKLQotc3RhdGlj
IFJldGFpblB0cjxDR1BhdHRlcm5SZWY+IGNyZWF0ZURvdFBhdHRlcm4oYm9vbCYgdXNpbmdEb3Qs
IGNvbnN0IGNoYXIqIHJlc291cmNlTmFtZSkKLXsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4g
aW1hZ2UgPSBhZG9wdENGKFdLR3JhcGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFtZShy
ZXNvdXJjZU5hbWUpKTsKLSAgICBBU1NFUlQoaW1hZ2UpOyAvLyBpZiBpbWFnZSBpcyBub3QgYXZh
aWxhYmxlLCB3ZSB3YW50IHRvIGtub3cKLSAgICB1c2luZ0RvdCA9IHRydWU7Ci0gICAgcmV0dXJu
IGFkb3B0Q0YoV0tDcmVhdGVQYXR0ZXJuRnJvbUNHSW1hZ2UoaW1hZ2UuZ2V0KCkpKTsKLX0KLQot
I2VuZGlmCi0KLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291
cmNlcygpCi17Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIFtzcGVsbGluZ0ltYWdlIHJlbGVhc2Vd
OwotICAgIHNwZWxsaW5nSW1hZ2UgPSBudWxscHRyOwotICAgIFtncmFtbWFySW1hZ2UgcmVsZWFz
ZV07Ci0gICAgZ3JhbW1hckltYWdlID0gbnVsbHB0cjsKLSAgICBbY29ycmVjdGlvbkltYWdlIHJl
bGVhc2VdOwotICAgIGNvcnJlY3Rpb25JbWFnZSA9IG51bGxwdHI7Ci0jZW5kaWYKLX0KLQogc3Rh
dGljIGlubGluZSB2b2lkIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNlKENHQ29udGV4dFJlZiBj
b250ZXh0LCBDR1BvaW50IHBoYXNlUG9pbnQpCiB7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdXNl
clRvQmFzZSA9IGdldFVzZXJUb0Jhc2VDVE0oY29udGV4dCk7CkBAIC0yMjcsMTQyICsxODEsMTAg
QEAgc3RhdGljIGlubGluZSB2b2lkIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNlKENHQ29udGV4
dFJlZiBjb250ZXh0LCBDR1BvaW50IHBoYXMKICAgICBDR0NvbnRleHRTZXRQYXR0ZXJuUGhhc2Uo
Y29udGV4dCwgQ0dTaXplTWFrZShwaGFzZS54LCBwaGFzZS55KSk7CiB9CiAKLS8vIFdlYktpdCBv
biBNYWMgaXMgYSBzdGFuZGFyZCBwbGF0Zm9ybSBjb21wb25lbnQsIHNvIGl0IG11c3QgdXNlIHRo
ZSBzdGFuZGFyZCBwbGF0Zm9ybSBhcnR3b3JrIGZvciB1bmRlcmxpbmUuCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQorLy8gRklYTUU6
IFdlIG5lZWQgdG8ga2VlcCB0aGlzIGZ1bmN0aW9uIHNpbmNlIGl0IGlzIHJlZmVyZW5jZWQgYnkg
RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6YXBwbHkoKS4KK3ZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCwgRG9j
dW1lbnRNYXJrZXJMaW5lU3R5bGUpCiB7Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1lIGZvciBtaXNzcGVsbGlu
ZyBvciBiYWQgZ3JhbW1hci4KLSAgICBpbnQgcGF0dGVybkhlaWdodCA9IGNNaXNzcGVsbGluZ0xp
bmVUaGlja25lc3M7Ci0gICAgZmxvYXQgcGF0dGVybldpZHRoID0gY01pc3NwZWxsaW5nTGluZVBh
dHRlcm5XaWR0aDsKLQotICAgIGJvb2wgdXNpbmdEb3Q7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAg
ICBOU0ltYWdlICppbWFnZTsKLSAgICBOU0NvbG9yICpmYWxsYmFja0NvbG9yOwotI2Vsc2UKLSAg
ICBDR1BhdHRlcm5SZWYgZG90UGF0dGVybjsKLSNlbmRpZgotICAgIHN3aXRjaCAoc3R5bGUpIHsK
LSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpTcGVsbGluZzogewotICAgICAgICAv
LyBDb25zdGFudHMgZm9yIHNwZWxsaW5nIHBhdHRlcm4gY29sb3IuCi0gICAgICAgIHN0YXRpYyBi
b29sIHVzaW5nRG90Rm9yU3BlbGxpbmcgPSBmYWxzZTsKLSNpZiAhUExBVEZPUk0oSU9TKQotICAg
ICAgICBpZiAoIXNwZWxsaW5nSW1hZ2UpCi0gICAgICAgICAgICBzcGVsbGluZ0ltYWdlID0gW2Zp
bmRJbWFnZShAIk5TU3BlbGxpbmdEb3QiLCBAIlNwZWxsaW5nRG90IiwgdXNpbmdEb3RGb3JTcGVs
bGluZykgcmV0YWluXTsKLSAgICAgICAgaW1hZ2UgPSBzcGVsbGluZ0ltYWdlOwotICAgICAgICBm
YWxsYmFja0NvbG9yID0gW05TQ29sb3IgcmVkQ29sb3JdOwotI2Vsc2UKLSAgICAgICAgc3RhdGlj
IENHUGF0dGVyblJlZiBzcGVsbGluZ1BhdHRlcm4gPSBjcmVhdGVEb3RQYXR0ZXJuKHVzaW5nRG90
Rm9yU3BlbGxpbmcsICJTcGVsbGluZ0RvdCIpLmxlYWtSZWYoKTsKLSAgICAgICAgZG90UGF0dGVy
biA9IHNwZWxsaW5nUGF0dGVybjsKLSNlbmRpZgotICAgICAgICB1c2luZ0RvdCA9IHVzaW5nRG90
Rm9yU3BlbGxpbmc7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIERvY3VtZW50TWFy
a2VyTGluZVN0eWxlOjpHcmFtbWFyOiB7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgLy8g
Q29uc3RhbnRzIGZvciBncmFtbWFyIHBhdHRlcm4gY29sb3IuCi0gICAgICAgIHN0YXRpYyBib29s
IHVzaW5nRG90Rm9yR3JhbW1hciA9IGZhbHNlOwotICAgICAgICBpZiAoIWdyYW1tYXJJbWFnZSkK
LSAgICAgICAgICAgIGdyYW1tYXJJbWFnZSA9IFtmaW5kSW1hZ2UoQCJOU0dyYW1tYXJEb3QiLCBA
IkdyYW1tYXJEb3QiLCB1c2luZ0RvdEZvckdyYW1tYXIpIHJldGFpbl07Ci0gICAgICAgIHVzaW5n
RG90ID0gZ3JhbW1hckltYWdlOwotICAgICAgICBpbWFnZSA9IGdyYW1tYXJJbWFnZTsKLSAgICAg
ICAgZmFsbGJhY2tDb2xvciA9IFtOU0NvbG9yIGdyZWVuQ29sb3JdOwotICAgICAgICBicmVhazsK
LSNlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0j
ZW5kaWYKLSAgICB9Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIC8vIFRvIHN1cHBvcnQgY29ycmVj
dGlvbiBwYW5lbC4KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpBdXRvY29ycmVj
dGlvblJlcGxhY2VtZW50OgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkRpY3Rh
dGlvbkFsdGVybmF0aXZlczogewotICAgICAgICAvLyBDb25zdGFudHMgZm9yIHNwZWxsaW5nIHBh
dHRlcm4gY29sb3IuCi0gICAgICAgIHN0YXRpYyBib29sIHVzaW5nRG90Rm9yU3BlbGxpbmcgPSBm
YWxzZTsKLSAgICAgICAgaWYgKCFjb3JyZWN0aW9uSW1hZ2UpCi0gICAgICAgICAgICBjb3JyZWN0
aW9uSW1hZ2UgPSBbZmluZEltYWdlKEAiTlNDb3JyZWN0aW9uRG90IiwgQCJDb3JyZWN0aW9uRG90
IiwgdXNpbmdEb3RGb3JTcGVsbGluZykgcmV0YWluXTsKLSAgICAgICAgdXNpbmdEb3QgPSB1c2lu
Z0RvdEZvclNwZWxsaW5nOwotICAgICAgICBpbWFnZSA9IGNvcnJlY3Rpb25JbWFnZTsKLSAgICAg
ICAgZmFsbGJhY2tDb2xvciA9IFtOU0NvbG9yIGJsdWVDb2xvcl07Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBjYXNlIERvY3VtZW50TWFya2Vy
TGluZVN0eWxlOjpUZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOiB7
Ci0gICAgICAgIHN0YXRpYyBib29sIHVzaW5nRG90Rm9yRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVy
bmF0aXZlcyA9IGZhbHNlOwotICAgICAgICBzdGF0aWMgQ0dQYXR0ZXJuUmVmIGRpY3RhdGlvblBo
cmFzZVdpdGhBbHRlcm5hdGl2ZXNQYXR0ZXJuID0gY3JlYXRlRG90UGF0dGVybih1c2luZ0RvdEZv
ckRpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXMsICJEaWN0YXRpb25QaHJhc2VXaXRoQWx0
ZXJuYXRpdmVzRG90IikubGVha1JlZigpOwotICAgICAgICBkb3RQYXR0ZXJuID0gZGljdGF0aW9u
UGhyYXNlV2l0aEFsdGVybmF0aXZlc1BhdHRlcm47Ci0gICAgICAgIHVzaW5nRG90ID0gdXNpbmdE
b3RGb3JEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOwotICAgICAgICBicmVhazsKLSAg
ICB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotICAgIGRlZmF1bHQ6Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHJlbW92ZSBkZWZhdWx0IGNhc2Ugc28gd2Ug
Z2V0IGNvbXBpbGUtdGltZSBlcnJvcnMuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAg
ICBGbG9hdFBvaW50IG9mZnNldFBvaW50ID0gcG9pbnQ7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdG8g
ZHJhdyBvbmx5IGNvbXBsZXRlIGRvdHMuCi0gICAgaWYgKHVzaW5nRG90KSB7Ci0gICAgICAgIC8v
IGFsbG93IHNsaWdodGx5IG1vcmUgY29uc2lkZXJpbmcgdGhhdCB0aGUgcGF0dGVybiBlbmRzIHdp
dGggYSB0cmFuc3BhcmVudCBwaXhlbAotICAgICAgICBmbG9hdCB3aWR0aE1vZCA9IGZtb2RmKHdp
ZHRoLCBwYXR0ZXJuV2lkdGgpOwotICAgICAgICBpZiAocGF0dGVybldpZHRoIC0gd2lkdGhNb2Qg
PiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKSB7Ci0gICAgICAgICAgICBmbG9hdCBn
YXBJbmNsdWRlV2lkdGggPSAwOwotICAgICAgICAgICAgaWYgKHdpZHRoID4gcGF0dGVybldpZHRo
KQotICAgICAgICAgICAgICAgIGdhcEluY2x1ZGVXaWR0aCA9IGNNaXNzcGVsbGluZ0xpbmVQYXR0
ZXJuR2FwV2lkdGg7Ci0gICAgICAgICAgICBvZmZzZXRQb2ludC5tb3ZlKGZsb29yKCh3aWR0aE1v
ZCArIGdhcEluY2x1ZGVXaWR0aCkgLyAyKSwgMCk7Ci0gICAgICAgICAgICB3aWR0aCAtPSB3aWR0
aE1vZDsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICAvLyBGSVhNRTogVGhpcyBjb2RlIHNo
b3VsZCBub3QgdXNlIE5TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0Ci0gICAgLy8gSW4g
b3JkZXIgdG8gcmVtb3ZlIHRoaXMgcmVxdWlyZW1lbnQgd2Ugd2lsbCBuZWVkIHRvIHVzZSBDR1Bh
dHRlcm4gaW5zdGVhZCBvZiBOU0NvbG9yCi0gICAgLy8gRklYTUU6IFRoaXMgY29kZSBzaG91bGQg
bm90IGJlIHVzaW5nIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNlLCBhcyB0aGlzIGFwcHJvYWNo
IGlzIHdyb25nCi0gICAgLy8gZm9yIHRyYW5zZm9ybXMuCi0KLSAgICAvLyBEcmF3IHVuZGVybGlu
ZS4KLSAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29udGV4dCgpOwotICAgIENH
Q29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlciB7IGNvbnRleHQgfTsKLQotI2lmIFBMQVRGT1JN
KElPUykKLSAgICBXS1NldFBhdHRlcm4oY29udGV4dCwgZG90UGF0dGVybiwgWUVTLCBZRVMpOwot
I2VuZGlmCi0KLSAgICBzZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZShjb250ZXh0LCBvZmZzZXRQ
b2ludCk7Ci0KLSAgICBDR1JlY3QgZGVzdGluYXRpb25SZWN0ID0gQ0dSZWN0TWFrZShvZmZzZXRQ
b2ludC54KCksIG9mZnNldFBvaW50LnkoKSwgd2lkdGgsIHBhdHRlcm5IZWlnaHQpOwotI2lmICFQ
TEFURk9STShJT1MpCi0gICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIENHQ29udGV4dENsaXBUb1Jl
Y3QoY29udGV4dCwgZGVzdGluYXRpb25SZWN0KTsKLQotICAgICAgICAvLyBXZSBleHBsaWNpdGx5
IGZsaXAgY29vcmRpbmF0ZXMgc28gYXMgdG8gZW5zdXJlIHdlIHBhaW50IHRoZSBpbWFnZSByaWdo
dC1zaWRlIHVwLiBXZSBkbyB0aGlzIGJlY2F1c2UKLSAgICAgICAgLy8gLVtOU0ltYWdlIENHSW1h
Z2VGb3JQcm9wb3NlZFJlY3Q6Y29udGV4dDpoaW50czpdIGRvZXMgbm90IGd1YXJhbnRlZSB0aGF0
IHRoZSByZXR1cm5lZCBpbWFnZSB3aWxsIHJlc3BlY3QKLSAgICAgICAgLy8gYW55IHRyYW5zZm9y
bXMgYXBwbGllZCB0byB0aGUgY29udGV4dCBvciBhbnkgc3BlY2lmaWVkIGhpbnRzLgotICAgICAg
ICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgMCwgcGF0dGVybkhlaWdodCk7Ci0gICAg
ICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0xKTsKLQotICAgICAgICBOU1JlY3Qg
ZG90UmVjdCA9IE5TTWFrZVJlY3Qob2Zmc2V0UG9pbnQueCgpLCBwYXR0ZXJuSGVpZ2h0IC0gb2Zm
c2V0UG9pbnQueSgpLCBwYXR0ZXJuV2lkdGgsIHBhdHRlcm5IZWlnaHQpOyAvLyBBZGp1c3QgeSBw
b3NpdGlvbiBhcyB3ZSBmbGlwcGVkIGNvb3JkaW5hdGVzLgotCi0gICAgICAgIC8vIEZJWE1FOiBS
YXRoZXIgdGhhbiBnZXR0aW5nIHRoZSBOU0ltYWdlIGFuZCB0aGVuIHBpY2tpbmcgdGhlIENHSW1h
Z2UgZnJvbSBpdCwgd2Ugc2hvdWxkIGRvIHdoYXQgaU9TIGRvZXMgYW5kCi0gICAgICAgIC8vIGp1
c3QgbG9hZCB0aGUgQ0dJbWFnZSBpbiB0aGUgZmlyc3QgcGxhY2UuCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIENHSW1hZ2VSZWYgY2dJbWFnZSA9IFtpbWFnZSBD
R0ltYWdlRm9yUHJvcG9zZWRSZWN0OiZkb3RSZWN0IGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0
IGdyYXBoaWNzQ29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOk5PXSBoaW50
czpudWxscHRyXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgQ0dDb250
ZXh0RHJhd1RpbGVkSW1hZ2UoY29udGV4dCwgTlNSZWN0VG9DR1JlY3QoZG90UmVjdCksIGNnSW1h
Z2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIENHQ29udGV4dFNldEZpbGxDb2xvcldpdGhDb2xv
cihjb250ZXh0LCBbZmFsbGJhY2tDb2xvciBDR0NvbG9yXSk7Ci0gICAgICAgIENHQ29udGV4dEZp
bGxSZWN0KGNvbnRleHQsIGRlc3RpbmF0aW9uUmVjdCk7Ci0gICAgfQotI2Vsc2UKLSAgICBXS1Jl
Y3RGaWxsVXNpbmdPcGVyYXRpb24oY29udGV4dCwgZGVzdGluYXRpb25SZWN0LCBrQ0dDb21wb3Np
dGVTb3Zlcik7Ci0jZW5kaWYKKyAgICAvLyBDb2NvYSBwbGF0Zm9ybXMgdXNlIFJlbmRlclRoZW1l
OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKCkgdG8gcGFpbnQgdGhlIHBsYXRmb3JtIGRvY3Vt
ZW50IG1hcmtlcnMuCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
Q0dXaW4uY3BwCmluZGV4IGM2OGU2MDZjMDg0NDdjM2I0MDJkMTg3ZjJlNjkyZjU3Y2Q2OWNmMjku
LjEyMDYzOGIyNTFiNDI5N2Y5YTNkZmUxM2Y1MzVlYmFhYTk3NzJmNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29u
dGV4dENHV2luLmNwcApAQCAtMTg1LDExICsxODUsNiBAQCBzdGF0aWMgY29uc3QgQ29sb3ImIGdy
YW1tYXJQYXR0ZXJuQ29sb3IoKSB7CiAgICAgcmV0dXJuIGdyYW1tYXJDb2xvcjsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVzb3VyY2VzKCkKLXsKLSAg
ICAvLyBVbm5lY2Vzc2FyeSwgc2luY2Ugb3VyIGRvY3VtZW50IG1hcmtlcnMgZG9uJ3QgdXNlIHJl
c291cmNlcy4KLX0KLQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRN
YXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtl
ckxpbmVTdHlsZSBzdHlsZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dERpcmVjdDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFw
aGljc0NvbnRleHREaXJlY3QyRC5jcHAKaW5kZXggMmY4MjE2MWIzZjQ4OTFjMGNiNDlkYWNiMTJm
YTRjNTIwYWI2MDNiYS4uNWVhY2UxMDg4NjY3YzIyOWI1YWZjMzllYzkzNjg3ZTBkNDVhNTJmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNz
Q29udGV4dERpcmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCkBAIC0zMTksMTAgKzMxOSw2IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+
JiByZWN0cywgZmxvYXQgd2lkdGgsCiB7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojp1cGRh
dGVEb2N1bWVudE1hcmtlclJlc291cmNlcygpCi17Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9h
dCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW0KaW5kZXggNjhlYjZkZWU3YjZj
NzJjZGRlNzljYmFjOTFmNmUyNWY3MDFhNDYwOC4uZGZjNmUwZWUzNWY3ZjhmNDlmY2Q2MDkzMDJi
NzRkMzFjOTYwYmVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dh
ay9XS0dyYXBoaWNzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tH
cmFwaGljcy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxNiArMjUsMTEgQEAKIAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJXS0dyYXBoaWNzLmgiCi0jaW1wb3J0ICJXS0dyYXBoaWNzSW50
ZXJuYWwuaCIKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2ltcG9ydCAiRm9udENhc2NhZGUuaCIK
LSNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFkSW50ZXJu
YWwuaCIKLSNpbXBvcnQgPEltYWdlSU8vSW1hZ2VJTy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9D
b3JlR3JhcGhpY3NTUEkuaD4KLSNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU2LDI4ICs1MSwxMiBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgX0ZpbGxSZWN0c1VzaW5nT3BlcmF0aW9uKENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBD
R1JlY3QqCiAgICAgQ0dDb250ZXh0U2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbnRleHQsIG9sZE9w
KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIF9GaWxsUmVjdFVzaW5nT3BlcmF0aW9uKENHQ29u
dGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVjdCwgQ0dDb21wb3NpdGVPcGVyYXRpb24gb3ApCi17
Ci0gICAgaWYgKHJlY3Quc2l6ZS53aWR0aCA+IDAgJiYgcmVjdC5zaXplLmhlaWdodCA+IDApIHsK
LSAgICAgICAgX0ZpbGxSZWN0c1VzaW5nT3BlcmF0aW9uIChjb250ZXh0LCAmcmVjdCwgMSwgb3Ap
OwotICAgIH0KLX0KLQogdm9pZCBXS1JlY3RGaWxsKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1Jl
Y3QgYVJlY3QpCiB7CiAgICAgaWYgKGFSZWN0LnNpemUud2lkdGggPiAwICYmIGFSZWN0LnNpemUu
aGVpZ2h0ID4gMCkgewogICAgICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwotICAg
ICAgICBfRmlsbFJlY3RVc2luZ09wZXJhdGlvbihjb250ZXh0LCBhUmVjdCwga0NHQ29tcG9zaXRl
Q29weSk7Ci0gICAgICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7Ci0gICAgfQot
fQotCi12b2lkIFdLUmVjdEZpbGxVc2luZ09wZXJhdGlvbihDR0NvbnRleHRSZWYgY29udGV4dCwg
Q0dSZWN0IGFSZWN0LCBXS0NvbXBvc2l0ZU9wZXJhdGlvbiBjb21wb3NpdGVPcGVyYXRpb24pCi17
Ci0gICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFdLQ29tcG9zaXRlT3BlcmF0aW9uKSA9PSBzaXpl
b2YoQ0dDb21wb3NpdGVPcGVyYXRpb24pLCAiV0tDb21wb3NpdGVPcGVyYXRpb24gbXVzdCBiZSB0
aGUgc2FtZSBzaXplIGFzIENHQ29tcG9zaXRlT3BlcmF0aW9uLiIpOwotICAgIGlmIChhUmVjdC5z
aXplLndpZHRoID4gMCAmJiBhUmVjdC5zaXplLmhlaWdodCA+IDAuMCkgewotICAgICAgICBDR0Nv
bnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwotICAgICAgICBfRmlsbFJlY3RVc2luZ09wZXJhdGlv
bihjb250ZXh0LCBhUmVjdCwgc3RhdGljX2Nhc3Q8Q0dDb21wb3NpdGVPcGVyYXRpb24+KGNvbXBv
c2l0ZU9wZXJhdGlvbikpOworICAgICAgICBpZiAoYVJlY3Quc2l6ZS53aWR0aCA+IDAgJiYgYVJl
Y3Quc2l6ZS5oZWlnaHQgPiAwKQorICAgICAgICAgICAgX0ZpbGxSZWN0c1VzaW5nT3BlcmF0aW9u
KGNvbnRleHQsICZhUmVjdCwgMSwga0NHQ29tcG9zaXRlQ29weSk7CiAgICAgICAgIENHQ29udGV4
dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CiAgICAgfQogfQpAQCAtOTQsODMgKzczLDQgQEAgQ0dD
b250ZXh0UmVmIFdLR2V0Q3VycmVudEdyYXBoaWNzQ29udGV4dCh2b2lkKQogICAgIHJldHVybiB0
aHJlYWRDb250ZXh0LT5jdXJyZW50Q0dDb250ZXh0OwogfQogCi1zdGF0aWMgTlNTdHJpbmcgKmlt
YWdlUmVzb3VyY2VQYXRoKGNvbnN0IGNoYXIqIGltYWdlRmlsZSwgdW5zaWduZWQgc2NhbGVGYWN0
b3IpCi17Ci0gICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gc2NhbGVGYWN0b3IgPT0gMSA/IFtOU1N0
cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzppbWFnZUZpbGVdIDogW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCIlc0AlZHgiLCBpbWFnZUZpbGUsIHNjYWxlRmFjdG9yXTsKLSNpZiBQTEFURk9S
TShJT1NfU0lNVUxBVE9SKQotICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxl
V2l0aElkZW50aWZpZXI6QCJjb20uYXBwbGUuV2ViQ29yZSJdOwotICAgIHJldHVybiBbYnVuZGxl
IHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZSBvZlR5cGU6QCJwbmciXTsKLSNlbHNlCi0gICAgLy8g
V29ya2Fyb3VuZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzc3ODA2NjU+IENGQnVuZGxlQ29weVJlc291
cmNlVVJMIHRha2VzIGEgbG9uZyB0aW1lIG9uIGlQaG9uZSAzRy4KLSAgICBOU1N0cmluZyAqaW1h
Z2VEaXJlY3RvcnkgPSBAIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9XZWJDb3Jl
LmZyYW1ld29yayI7Ci0gICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAv
JUAucG5nIiwgaW1hZ2VEaXJlY3RvcnksIGZpbGVOYW1lXTsKLSNlbmRpZgotfQotCi1DR0ltYWdl
UmVmIFdLR3JhcGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFtZShjb25zdCBjaGFyICpp
bWFnZV9maWxlKQotewotICAgIGlmICghaW1hZ2VfZmlsZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7
Ci0KLSAgICBDR0ltYWdlUmVmIGltYWdlID0gbnVsbHB0cjsKLSAgICBOU0RhdGEgKmltYWdlRGF0
YSA9IG51bGxwdHI7Ci0gICAgZm9yICh1bnNpZ25lZCBzY2FsZUZhY3RvciA9IHNjcmVlblNjYWxl
RmFjdG9yKCk7IHNjYWxlRmFjdG9yID4gMDsgLS1zY2FsZUZhY3RvcikgewotICAgICAgICBpbWFn
ZURhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6aW1hZ2VSZXNvdXJjZVBhdGgo
aW1hZ2VfZmlsZSwgc2NhbGVGYWN0b3IpXTsKLSAgICAgICAgQVNTRVJUKHNjYWxlRmFjdG9yICE9
IHNjcmVlblNjYWxlRmFjdG9yKCkgfHwgaW1hZ2VEYXRhKTsKLSAgICAgICAgaWYgKGltYWdlRGF0
YSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAoaW1hZ2VEYXRhKSB7
Ci0gICAgICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gZGF0YVByb3ZpZGVyID0gYWRv
cHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhDRkRhdGEocmVpbnRlcnByZXRfY2FzdDxDRkRh
dGFSZWY+KGltYWdlRGF0YSkpKTsKLSAgICAgICAgaW1hZ2UgPSBDR0ltYWdlQ3JlYXRlV2l0aFBO
R0RhdGFQcm92aWRlcihkYXRhUHJvdmlkZXIuZ2V0KCksIG51bGxwdHIsIE5PLCBrQ0dSZW5kZXJp
bmdJbnRlbnREZWZhdWx0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19Ci0KLXN0YXRp
YyB2b2lkIFdLRHJhd1BhdHRlcm5CaXRtYXAodm9pZCAqaW5mbywgQ0dDb250ZXh0UmVmIGMpIAot
ewotICAgIENHSW1hZ2VSZWYgaW1hZ2UgPSAoQ0dJbWFnZVJlZilpbmZvOwotICAgIENHRmxvYXQg
c2NhbGUgPSBzY3JlZW5TY2FsZUZhY3RvcigpOwotICAgIENHQ29udGV4dERyYXdJbWFnZShjLCBD
R1JlY3RNYWtlKDAsIDAsIENHSW1hZ2VHZXRXaWR0aChpbWFnZSkgLyBzY2FsZSwgQ0dJbWFnZUdl
dEhlaWdodChpbWFnZSkgLyBzY2FsZSksIGltYWdlKTsgICAgCi19Ci0KLXN0YXRpYyB2b2lkIFdL
UmVsZWFzZVBhdHRlcm5CaXRtYXAodm9pZCAqaW5mbykgCi17Ci0gICAgQ0dJbWFnZVJlbGVhc2Uo
cmVpbnRlcnByZXRfY2FzdDxDR0ltYWdlUmVmPihpbmZvKSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBD
R1BhdHRlcm5DYWxsYmFja3MgV0tQYXR0ZXJuQml0bWFwQ2FsbGJhY2tzID0gCi17Ci0gICAgMCwg
V0tEcmF3UGF0dGVybkJpdG1hcCwgV0tSZWxlYXNlUGF0dGVybkJpdG1hcAotfTsKLQotQ0dQYXR0
ZXJuUmVmIFdLQ3JlYXRlUGF0dGVybkZyb21DR0ltYWdlKENHSW1hZ2VSZWYgaW1hZ2VSZWYpCi17
Ci0gICAgLy8gcmV0YWluIGltYWdlIHNpbmNlIGl0J3MgZnJlZWQgYnkgb3VyIGNhbGxiYWNrCi0g
ICAgQ0dJbWFnZVJldGFpbihpbWFnZVJlZik7Ci0KLSAgICBDR0Zsb2F0IHNjYWxlID0gc2NyZWVu
U2NhbGVGYWN0b3IoKTsKLSAgICByZXR1cm4gQ0dQYXR0ZXJuQ3JlYXRlKCh2b2lkKilpbWFnZVJl
ZiwgQ0dSZWN0TWFrZSgwLCAwLCBDR0ltYWdlR2V0V2lkdGgoaW1hZ2VSZWYpIC8gc2NhbGUsIENH
SW1hZ2VHZXRIZWlnaHQoaW1hZ2VSZWYpIC8gc2NhbGUpLCBDR0FmZmluZVRyYW5zZm9ybUlkZW50
aXR5LCBDR0ltYWdlR2V0V2lkdGgoaW1hZ2VSZWYpIC8gc2NhbGUsIENHSW1hZ2VHZXRIZWlnaHQo
aW1hZ2VSZWYpIC8gc2NhbGUsIGtDR1BhdHRlcm5UaWxpbmdDb25zdGFudFNwYWNpbmcsIDEgLypp
c0NvbG9yZWQqLywgJldLUGF0dGVybkJpdG1hcENhbGxiYWNrcyk7Ci19Ci0KLXZvaWQgV0tTZXRQ
YXR0ZXJuKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1BhdHRlcm5SZWYgcGF0dGVybiwgYm9vbCBm
aWxsLCBib29sIHN0cm9rZSkgCi17Ci0gICAgaWYgKHBhdHRlcm4gPT0gTlVMTCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQ0dGbG9hdCBwYXR0ZXJuQWxwaGEgPSAxOwotICAgIENHQ29sb3JTcGFj
ZVJlZiBjb2xvcnNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlUGF0dGVybihOVUxMKTsKLSAgICBp
ZiAoZmlsbCkgewotICAgICAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3JTcGFjZShjb250ZXh0LCBj
b2xvcnNwYWNlKTsKLSAgICAgICAgQ0dDb250ZXh0U2V0RmlsbFBhdHRlcm4oY29udGV4dCwgcGF0
dGVybiwgJnBhdHRlcm5BbHBoYSk7Ci0gICAgfQotICAgIGlmIChzdHJva2UpIHsKLSAgICAgICAg
Q0dDb250ZXh0U2V0U3Ryb2tlQ29sb3JTcGFjZShjb250ZXh0LCBjb2xvcnNwYWNlKTsKLSAgICAg
ICAgQ0dDb250ZXh0U2V0U3Ryb2tlUGF0dGVybihjb250ZXh0LCBwYXR0ZXJuLCAmcGF0dGVybkFs
cGhhKTsKLSAgICB9Ci0gICAgQ0dDb2xvclNwYWNlUmVsZWFzZShjb2xvcnNwYWNlKTsKLX0KLQog
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy93YWsvV0tHcmFwaGljc0ludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3Mvd2FrL1dLR3JhcGhpY3NJbnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzZmVkNDc2ZjIyYzA1MTUxOWRhMDJmZDUxMjE3ZWY2ZGY0MjNmODRiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy93YWsvV0tHcmFwaGljc0ludGVybmFsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBUQVJHRVRfT1NfSVBIT05F
Ci0KLSNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KLQotdHlwZWRlZiBpbnQg
V0tDb21wb3NpdGVPcGVyYXRpb247Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7
Ci0jZW5kaWYKLQotdm9pZCBXS1JlY3RGaWxsVXNpbmdPcGVyYXRpb24oQ0dDb250ZXh0UmVmLCBD
R1JlY3QsIFdLQ29tcG9zaXRlT3BlcmF0aW9uKTsKLUNHSW1hZ2VSZWYgV0tHcmFwaGljc0NyZWF0
ZUltYWdlRnJvbUJ1bmRsZVdpdGhOYW1lKGNvbnN0IGNoYXIgKmltYWdlX2ZpbGUpOwotQ0dQYXR0
ZXJuUmVmIFdLQ3JlYXRlUGF0dGVybkZyb21DR0ltYWdlKENHSW1hZ2VSZWYgaW1hZ2VSZWYpOwot
dm9pZCBXS1NldFBhdHRlcm4oQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUGF0dGVyblJlZiBwYXR0
ZXJuLCBib29sIGZpbGwsIGJvb2wgc3Ryb2tlKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0j
ZW5kaWYKLQotI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCA1ZWFjNzRhYmQyMWIxMTZhNzNmNTA0YzI1YzJj
MTkzYjAyMTQ1YmE4Li4wYTc4NGNjYzM0YWYwMWRiMTA2NDg2ZmJjNzczNTEzM2E1MDRjNmQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC03MjYsNyAr
NzI2LDcgQEAgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgICAgICB1bmRlcmxpbmVPZmZzZXQg
PSBiYXNlbGluZSArIDI7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5kcmF3TGluZUZvckRvY3VtZW50
TWFya2VyKHJlbmRlcmVyKCksIGNvbnRleHQsIEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIHN0
YXJ0LCBib3hPcmlnaW4ueSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVTdHlsZUZv
ck1hcmtlZFRleHRUeXBlKG1hcmtlZFRleHQudHlwZSkpOwogI2Vsc2UKICAgICBjb250ZXh0LmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgc3RhcnQs
IGJveE9yaWdpbi55KCkgKyB1bmRlcmxpbmVPZmZzZXQpLCB3aWR0aCwgbGluZVN0eWxlRm9yTWFy
a2VkVGV4dFR5cGUobWFya2VkVGV4dC50eXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ29jb2EuaAppbmRleCAzMDE1MWQ4NDhlZTQ1Y2Y4NWQ4ODk0MTEzMTQyZTA3
MjI5YmUxYzRjLi5jMjgzMGZlOGFkY2FkNTFlMTJkNDMxYmQ2YWZlMTMzNDk5ZGIzMzNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKQEAgLTM2LDYgKzM2
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVi
bGljIFJlbmRlclRoZW1lIHsKIHByaXZhdGU6CisgICAgdm9pZCBkcmF3TGluZUZvckRvY3VtZW50
TWFya2VyKGNvbnN0IFJlbmRlclRleHQmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBv
aW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSkgZmluYWw7
CisKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogICAgIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25T
dHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVj
dCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KaW5kZXggZGYyYzczMWQwODk2
NzYxZDI3NzQyZGQ5M2VlNmUxMzEzZGRmZDI5MS4uMWQ2ZmY2ZWI1NTAxZjdiNDU0MThmNTExNWJh
MTFiNTFkMDZjNDM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EubW0KQEAgLTIzLDE2ICsyMywxOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVt
ZUNvY29hLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJlbmRlclRoZW1lQ29jb2Eu
aCIKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJSZW5kZXJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uaCIKLSNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaD4KLSNpbmNs
dWRlIDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCisj
aW1wb3J0ICJSZW5kZXJFbGVtZW50LmgiCisjaW1wb3J0ICJSZW5kZXJTdHlsZS5oIgorI2ltcG9y
dCAiUmVuZGVyVGV4dC5oIgorI2ltcG9ydCAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgi
CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVX
T1JLKFBhc3NLaXQpOwpAQCAtNDUsMTIgKzQ3LDU2IEBAIFNPRlRfTElOS19NQVlfRkFJTChQYXNz
S2l0LCBQS0RyYXdBcHBsZVBheUJ1dHRvbiwgdm9pZCwgKENHQ29udGV4dFJlZiBjb250ZXh0LCBD
CiAjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCi0jaW5jbHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlv
bnMuaD4KKyNpbXBvcnQgIkxvY2FsaXplZFN0cmluZ3MuaCIKKyNpbXBvcnQgPHd0Zi9CbG9ja09i
akNFeGNlcHRpb25zLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMg
Q0dDb2xvclJlZiBjb2xvckZvclN0eWxlKERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlLCBi
b29sIHVzZURhcmtNb2RlKQoreworICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAvLyBSZWQKKyAg
ICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpTcGVsbGluZzoKKyAgICAgICAgcmV0dXJu
IGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUgPyBDb2xvciB7IDI1NSwgMTQwLCAxNDAsIDIxNyB9
IDogQ29sb3IgeyAyNTUsIDU5LCA0OCwgMTkxIH0pOworICAgIC8vIEJsdWUKKyAgICBjYXNlIERv
Y3VtZW50TWFya2VyTGluZVN0eWxlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM6CisgICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6VGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFs
dGVybmF0aXZlczoKKyAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpBdXRvY29ycmVj
dGlvblJlcGxhY2VtZW50OgorICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9k
ZSA/IENvbG9yIHsgNDAsIDE0NSwgMjU1LCAyMTcgfSA6IENvbG9yIHsgMCwgMTIyLCAyNTUsIDE5
MSB9KTsKKyAgICAvLyBHcmVlbgorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Okdy
YW1tYXI6CisgICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3Ig
eyA1MCwgMjE1LCA3NSwgMjE3IH0gOiBDb2xvciB7IDI1LCAxNzUsIDUwLCAxOTEgfSk7CisgICAg
fQorfQorCit2b2lkIFJlbmRlclRoZW1lQ29jb2E6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIo
Y29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGUgc3R5bGUpCit7CisgICAgaWYgKGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIGNpcmNsZUNvbG9yID0gY29sb3JGb3JTdHlsZShzdHlsZSwg
cmVuZGVyZXIucGFnZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSAmJiByZW5kZXJlci5wYWdlKCku
dXNlRGFya0FwcGVhcmFuY2UoKSk7CisKKyAgICAvLyBDZW50ZXIgdGhlIHVuZGVybGluZSBhbmQg
ZW5zdXJlIHdlIG9ubHkgZHJhdyBlbnRpcmUgZG90cy4KKyAgICBGbG9hdFBvaW50IG9mZnNldFBv
aW50ID0gb3JpZ2luOworICAgIGZsb2F0IHdpZHRoTW9kID0gZm1vZGYod2lkdGgsIGNNaXNzcGVs
bGluZ0xpbmVQYXR0ZXJuV2lkdGgpOworICAgIGlmIChjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldp
ZHRoIC0gd2lkdGhNb2QgPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKSB7CisgICAg
ICAgIGZsb2F0IGdhcEluY2x1ZGVXaWR0aCA9IDA7CisgICAgICAgIGlmICh3aWR0aCA+IGNNaXNz
cGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGgpCisgICAgICAgICAgICBnYXBJbmNsdWRlV2lkdGggPSBj
TWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoOworICAgICAgICBvZmZzZXRQb2ludC5tb3Zl
KGZsb29yKCh3aWR0aE1vZCArIGdhcEluY2x1ZGVXaWR0aCkgLyAyKSwgMCk7CisgICAgICAgIHdp
ZHRoIC09IHdpZHRoTW9kOworICAgIH0KKworICAgIENHQ29udGV4dFJlZiBwbGF0Zm9ybUNvbnRl
eHQgPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOworICAgIENHQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlciB7IHBsYXRmb3JtQ29udGV4dCB9OworICAgIENHQ29udGV4dFNldEZpbGxDb2xv
cldpdGhDb2xvcihwbGF0Zm9ybUNvbnRleHQsIGNpcmNsZUNvbG9yKTsKKyAgICBmb3IgKGludCB4
ID0gMDsgeCA8IHdpZHRoOyB4ICs9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lkdGgpCisgICAg
ICAgIENHQ29udGV4dEFkZEVsbGlwc2VJblJlY3QocGxhdGZvcm1Db250ZXh0LCBDR1JlY3RNYWtl
KG9mZnNldFBvaW50LngoKSArIHgsIG9mZnNldFBvaW50LnkoKSwgY01pc3NwZWxsaW5nTGluZVRo
aWNrbmVzcywgY01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcykpOworICAgIENHQ29udGV4dFNldENv
bXBvc2l0ZU9wZXJhdGlvbihwbGF0Zm9ybUNvbnRleHQsIGtDR0NvbXBvc2l0ZVNvdmVyKTsKKyAg
ICBDR0NvbnRleHRGaWxsUGF0aChwbGF0Zm9ybUNvbnRleHQpOworfQorCiAjaWYgRU5BQkxFKEFQ
UExFX1BBWSkKIAogc3RhdGljIGNvbnN0IGF1dG8gYXBwbGVQYXlCdXR0b25NaW5pbXVtV2lkdGgg
PSAxNDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IGQ5
OGRlM2E5NTk5MTZjOGZhYTM1NGRlZGU1MTk5OGY4OGQ4YjBlOWMuLmJhNzliZGFjNzI5N2IzMWI0
NmE2YmY0ZDVkMzcyMTVhYTM5ODM5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5oCkBAIC0xNzQsOCArMTc0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50
QXR0YWNobWVudChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJ
bnRSZWN0JikgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgZHJhd0xpbmVGb3JEb2N1bWVudE1h
cmtlcihjb25zdCBSZW5kZXJUZXh0JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2lu
dCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIGZpbmFsOwot
CiAgICAgYm9vbCB1c2luZ0RhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0
IGZpbmFsOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tCmluZGV4IGI4ODlkYWM0ZDRhMTIyMWNkNTdlZWIwZmQxMmJjNTU2MTBjOTNiNDMuLjA1
ZTc4MWEyMzM3NGI4NzRhMGUzODg5NWU0MWY3OWY2ZDBkMjBhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM3LDcgKzM3LDYgQEAKICNpbXBvcnQg
IkZyYW1lVmlldy5oIgogI2ltcG9ydCAiR2VvbWV0cnlVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dC5oIgotI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBvcnQg
IkhUTUxBdHRhY2htZW50RWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTElucHV0RWxlbWVudC5oIgog
I2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMjk3Myw1MCArMjk3Miw2IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50QXR0YWNobWVudChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRl
cmVyLCBjb25zdCBQYWludEluCiAKICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQogCi1zdGF0aWMgQ0dDb2xvclJlZiBjb2xvckZvclN0eWxlKERvY3VtZW50TWFya2VyTGluZVN0
eWxlIHN0eWxlLCBib29sIHVzZURhcmtNb2RlKQotewotICAgIHN3aXRjaCAoc3R5bGUpIHsKLSAg
ICAvLyBSZWQuCi0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmc6Ci0g
ICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyAyNTUsIDE0
MCwgMTQwLCAyMTcgfSA6IENvbG9yIHsgMjU1LCA1OSwgNDgsIDE5MSB9KTsKLSAgICAvLyBCbHVl
LgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkRpY3RhdGlvbkFsdGVybmF0aXZl
czoKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpUZXh0Q2hlY2tpbmdEaWN0YXRp
b25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGU6OkF1dG9jb3JyZWN0aW9uUmVwbGFjZW1lbnQ6Ci0gICAgICAgIHJldHVybiBjYWNoZWRDR0Nv
bG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyA0MCwgMTQ1LCAyNTUsIDIxNyB9IDogQ29sb3IgeyAw
LCAxMjIsIDI1NSwgMTkxIH0pOwotICAgIC8vIEdyZWVuLgotICAgIGNhc2UgRG9jdW1lbnRNYXJr
ZXJMaW5lU3R5bGU6OkdyYW1tYXI6Ci0gICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURh
cmtNb2RlID8gQ29sb3IgeyA1MCwgMjE1LCA3NSwgMjE3IH0gOiBDb2xvciB7IDI1LCAxNzUsIDUw
LCAxOTEgfSk7Ci0gICAgfQotfQotCi12b2lkIFJlbmRlclRoZW1lTWFjOjpkcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERvY3VtZW50
TWFya2VyTGluZVN0eWxlIHN0eWxlKQotewotICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJs
ZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBjaXJjbGVDb2xvciA9IGNvbG9yRm9y
U3R5bGUoc3R5bGUsIHJlbmRlcmVyLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCkgJiYgcmVu
ZGVyZXIucGFnZSgpLnVzZURhcmtBcHBlYXJhbmNlKCkpOwotCi0gICAgLy8gQ2VudGVyIHRoZSB1
bmRlcmxpbmUgYW5kIGVuc3VyZSB3ZSBvbmx5IGRyYXcgZW50aXJlcyBkb3RzLgotICAgIEZsb2F0
UG9pbnQgb2Zmc2V0UG9pbnQgPSBvcmlnaW47Ci0gICAgZmxvYXQgd2lkdGhNb2QgPSBmbW9kZih3
aWR0aCwgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCk7Ci0gICAgaWYgKGNNaXNzcGVsbGlu
Z0xpbmVQYXR0ZXJuV2lkdGggLSB3aWR0aE1vZCA+IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2Fw
V2lkdGgpIHsKLSAgICAgICAgZmxvYXQgZ2FwSW5jbHVkZVdpZHRoID0gMDsKLSAgICAgICAgaWYg
KHdpZHRoID4gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCkKLSAgICAgICAgICAgIGdhcElu
Y2x1ZGVXaWR0aCA9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGg7Ci0gICAgICAgIG9m
ZnNldFBvaW50Lm1vdmUoZmxvb3IoKHdpZHRoTW9kICsgZ2FwSW5jbHVkZVdpZHRoKSAvIDIpLCAw
KTsKLSAgICAgICAgd2lkdGggLT0gd2lkdGhNb2Q7Ci0gICAgfQotCi0gICAgQ0dDb250ZXh0UmVm
IGN0eCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyIHsgY3R4IH07Ci0gICAgQ0dDb250ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9y
KGN0eCwgY2lyY2xlQ29sb3IpOwotICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHggKz0g
Y01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCkKLSAgICAgICAgQ0dDb250ZXh0QWRkRWxsaXBz
ZUluUmVjdChjdHgsIENHUmVjdE1ha2Uob2Zmc2V0UG9pbnQueCgpICsgeCwgb2Zmc2V0UG9pbnQu
eSgpLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNz
KSk7Ci0gICAgQ0dDb250ZXh0U2V0Q29tcG9zaXRlT3BlcmF0aW9uKGN0eCwga0NHQ29tcG9zaXRl
U292ZXIpOwotICAgIENHQ29udGV4dEZpbGxQYXRoKGN0eCk7Ci19Ci0KIGJvb2wgUmVuZGVyVGhl
bWVNYWM6OnVzaW5nRGFya0FwcGVhcmFuY2UoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAog
ewogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE0MDAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347972</attachid>
            <date>2018-08-23 16:47:24 -0700</date>
            <delta_ts>2018-08-23 16:47:24 -0700</delta_ts>
            <desc>For landing</desc>
            <filename>bug-188828-20180823164723.patch</filename>
            <type>text/plain</type>
            <size>51608</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiMTRhMTJhYzMyODQz
NzZkYWRmZWIwMWI5NzcxNTRiN2QxNzk5NS4uMjA0N2YxM2FkNDVjZmYxZjYzMjM5YTJkNjYzYmU4
NDcwNDY0NTM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE4LTA4LTIzICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBTcGVsbGluZyBkb3RzIGRv
IG5vdCBzY2FsZSB3aXRoIHBhZ2Ugb24gaU9TOyBzaGFyZSBzcGVsbGluZyBkb3QgcGFpbnRpbmcg
Y29kZSBiZXR3ZWVuIE1hYyBhbmQgaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODg4MjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1OTY2NDAz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUaGUgbG9v
ayBvZiB0aGUgc3BlbGxpbmcgZG90cyBvbiBNYWMgYW5kIGlPUyBhcmUgaWRlbnRpY2FsIHVwIHRv
IGNvbG9yLiBUb3dhcmRzIG1ha2luZyB0aGUKKyAgICAgICAgc3BlbGxpbmcgZG90cyBpbiBXZWJL
aXQgb24gaU9TIG1vcmUgY2xvc2VseSBtYXRjaCB0aGUgbG9vayBvZiB0aGUgc3BlbGxpbmcgZG90
cyBpbiBVSUtpdC0KKyAgICAgICAgYXBwcywgc3RhbmRhcmRpemUgb24gdXNpbmcgdGhlIHNhbWUg
cGFpbnRpbmcgY29kZSBmb3IgYm90aCBNYWMgYW5kIGlPUy4KKworICAgICAgICBDdXJyZW50bHkg
aU9TIHVzZXMgYml0bWFwcyB0byByZW5kZXIgdGhlIHNwZWxsaW5nIGRvdHMgYW5kIGRvZXMgbm90
IGFjY291bnQgZm9yIHVzZXIvQ1NTCisgICAgICAgIHpvb21pbmcuIEFzIGEgcmVzdWx0LCB0aGUg
c3BlbGxpbmcgZG90cyBvbiBpT1MgcmVuZGVyIHdpdGggYXJ0aWZhY3RzIChlLmcuIHRydW5jYXRl
ZCBkb3RzKS4KKyAgICAgICAgQSBzaWRlIGJlbmVmaXQgb2YgaGF2aW5nIGlPUyBzaGFyZSB0aGUg
c2FtZSBwYWludGluZyBjb2RlIGFzIE1hYyBpcyB0aGF0IGlPUyB3aWxsIG5vdyBwYWludAorICAg
ICAgICB0aGUgZG90cyBwcm9ncmFtbWF0aWNhbGx5IGFuZCB3ZSBhdm9pZCBib3RoIHRoZSBuZWVk
IHRvIHVzZSBiaXRtYXBzIGFuZCBmaXggdGhlIGJ1Z3MgaW4KKyAgICAgICAgdGhlIHBhaW50aW5n
IG9mIHRoZSBiaXRtYXAgZG90cyB3aXRoIHJlc3BlY3QgdG8gem9vbWluZy4KKworICAgICAgICAq
IFJlc291cmNlcy9EaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0Rv
dEAyeC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogUmVzb3VyY2VzL1NwZWxsaW5nRG90LnBuZzog
UmVtb3ZlZC4KKyAgICAgICAgKiBSZXNvdXJjZXMvU3BlbGxpbmdEb3RAMngucG5nOiBSZW1vdmVk
LgorICAgICAgICAqIFJlc291cmNlcy9TcGVsbGluZ0RvdEAzeC5wbmc6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291
cmNlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEltYWdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURvdFBhdHRlcm4pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJl
c291cmNlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dENHV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
dXBkYXRlRG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVzb3VyY2VzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW06CisgICAg
ICAgIChXS1JlY3RGaWxsKTogSW5jb3Jwb3JhdGVkIHRoZSBsb2dpYyBmcm9tIF9GaWxsUmVjdFVz
aW5nT3BlcmF0aW9uKCkuCisgICAgICAgIChfRmlsbFJlY3RVc2luZ09wZXJhdGlvbik6IERlbGV0
ZWQ7IG1vdmVkIHRoZSBsb2dpYyBpbnRvIFdLUmVjdEZpbGwoKSBzaW5jZSBXS1JlY3RGaWxsKCkK
KyAgICAgICAgaXMgbm93IHRoZSBvbmx5IGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLgorICAgICAg
ICAoV0tSZWN0RmlsbFVzaW5nT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKGltYWdlUmVz
b3VyY2VQYXRoKTogRGVsZXRlZC4KKyAgICAgICAgKFdLR3JhcGhpY3NDcmVhdGVJbWFnZUZyb21C
dW5kbGVXaXRoTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXS0RyYXdQYXR0ZXJuQml0bWFwKTog
RGVsZXRlZC4KKyAgICAgICAgKFdLUmVsZWFzZVBhdHRlcm5CaXRtYXApOiBEZWxldGVkLgorICAg
ICAgICAoV0tTZXRQYXR0ZXJuKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mvd2Fr
L1dLR3JhcGhpY3NJbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50UGxh
dGZvcm1Eb2N1bWVudE1hcmtlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29j
b2EuaDogQWRkIGhlYWRlcnMgUmVuZGVyVGV4dC5oIGFuZCBHcmFwaGljc0NvbnRleHRDRy5oLiBG
aXggc29tZSBzdHlsZSBuaXRzIHdoaWxlIEkgYW0gaGVyZTsKKyAgICAgICAgc3Vic3RpdHV0ZSAj
aW1wb3J0IGZvciAjaW5jbHVkZSBhbmQgcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgaGVhZGVycyBU
cmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCwgUmVuZGVyU3R5bGUuaCwgYW5kCisgICAgICAg
IFJlbmRlckVsZW1lbnQuaC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yRm9yU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVDb2NvYTo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6IE1vdmVkIGZyb20g
UmVuZGVyVGhlbWVNYWMuIEkgcmVuYW1lZAorICAgICAgICB0aGUgbG9jYWwgdmFyaWFibGUgY3R4
IHRvIGNvbnRleHQgYW5kIGZpeGVkIGEgdHlwZSBpbiBhIGNvbW1lbnQgd2hpbGUgbW92aW5nIHRo
aXMgY29kZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpjb2xvckZv
clN0eWxlKTogRGVsZXRlZDsgbW92ZWQgdG8gY2xhc3MgUmVuZGVyVGhlbWVDb2NvYS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKTog
RGVsZXRlZDsgbW92ZWQgdG8gY2xhc3MgUmVuZGVyVGhlbWVDb2NvYS4KKwogMjAxOC0wOC0yMyAg
RGF2aWQgRmVudG9uICA8ZGF2aWRfZmVudG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjM1MTI5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nIGIvU291cmNlL1dl
YkNvcmUvUmVzb3VyY2VzL0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmUxMGY4Y2E2NjcwMjBkZGRiOGJlODRmOTY4
NDk1MTc0Mzg1MDYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE4Mwp6Y21lQVNA
Tj8ob2xIeWB1VkJxIWlhMHZwXkVJYGM2ITNIRl5kfDd1NE5PMlo7TD40bkphMGBQbEJnM3BZNTxv
JFAKeldSRDxVMjhKcUMyOE09YTI4TiZpZiVIb1RoRWY5dGhGMXY7M3wyRTM3e3YxQCNVRko4czxy
aVdhU1ctciNkNlMpCno+d3RtKSFAO1prKEdnbEl0ITJ+cD1gJVZgKiErUkx7TT9UMWsmSHFDXkY2
KzgoKWx4QUBpYkd6ZUNPWGNQcyFZMwphZTg9RihCen1fRlplfWpmQU89cllLYkxoKjJ+N1pgTUt1
aW8KCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvRGljdGF0aW9uUGhyYXNl
V2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvRGlj
dGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZmMzY5ZmI0ODY5ZGZmOTkwNjJiZDYwMzJjZWQyOTkwMDhhMjU3YmYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaAps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjY3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEw
dnBeOTYtIyohM0hHJXZFS2c7cSZOI2FCOHdScXhQP0tPa3p2KngzODBgdAp6dlBZMEYxNEVUNjE0
QmJJMUg7ZSVLPjgmRUwjWTcrIT5hQGEyQ0VxaTRDNDhkOypZdWspbFQkdWFTVy1yPCNXb0sKej55
VSM0IV4yNFAkakoqQD1iZ1RFJUlrIXhpMGoyX2orSHEmZHFiYClOVnBleUQxUmR0cFU/TXxyJGMr
VHpPZ3pqCnpibGBgfHpWbjU0aTx2KiV2dXVDZjlVOH1RcHlFaUhsX1BVRGdUQWstVXcqKDxKe1FG
alR8KjZheHBLd1IzKk83Rgp6QFZkYXx6LVcrPlpFM3BuTHcmVU9BIzs3TThgOFNWRzlubVErS01l
Z1pwOzdSVlghKUI8R3xUPkc4NT1IMjJXUSUKSm12djRGTyN0QE9TaUFyTAoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdC5wbmcgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvU3BlbGxpbmdEb3QucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3NjFhOWI3ODhkNDQwNjI4OTJjNWQzNzYyNjg2ODc0ZWYwNzFmNTI0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpsaXRlcmFsIDE5NQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXkVJYGM2ITMt
cHV3Y0BeajFreFJTOVReeXwtTUhjKFZGY3QkbWJnWmcKejFtfnhmbHFWTFlHQn5FPkMjNVFRPHxk
fTYyQmp2WlIySDYwd0UtJVU0KTYoYXtlU2k5enR5WSVoS0sqfXBZWUdZCno7YWA5TVV3UWR8O1N2
QTt8Mks0RnkkZSp2U3JYKEk0Q0kwVkwkSDVeNVhiXmc3c3JyX1RTKkJDREd3NDdrYGtYTQpnQiV+
JWtXOGc0Z1Y2PGoxNE9fQWhzRF4+VCk3OCZxb2xgOyswRGNvaG8mVyM8CgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL1NwZWxsaW5nRG90QDJ4LnBuZyBiL1NvdXJjZS9XZWJD
b3JlL1Jlc291cmNlcy9TcGVsbGluZ0RvdEAyeC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZhOGUzMWMyZGFhNTgzZTA0MzVhNTNhNGJjMWJlMzUzYjEzNTBlZjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjU2CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeOTYt
IyohM0hHJXZFS2c7cSZOI2FCOHdScXhQP0tPa3p2KngzODBgdAp6dlBZMEYxNEVUNjE0QmJJMUgl
Xn0tRXh0RUF2ZDBaO1lBSnVnSDFPQmdMRmptYk1efEwrQlEhWSRCPkYhQSpWS1MKekg5MUhlXypu
bnQ/bjRERGkoZ1RHekshfmNCQ2RQZ0E2JDg0e2ojTHtnS3FtfSYxKGY2VXVNXzA9VTxPfV9TMjZl
CnpvbmNMYDtXTzd6UnRDcWZvbXRKXzg3OEVMY1Jre1dOcVheSD5VcU1mQiMmVD8oXmRTMzhPfE50
YlZQd2thZjR2VQp6e2hzOHs7Kip4I1o4cWU7Y0o8TDsmSVgoUjNQcmFNPHVtQVApeEdnM154cz5j
aXhAbXp7YW5eTEJ7VHM1b3xheDUKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJj
ZXMvU3BlbGxpbmdEb3RAM3gucG5nIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL1NwZWxsaW5n
RG90QDN4LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFiN2Y3YWZlNzg4OTUz
MGNhN2M4NzM3ODU0N2MzNGUwYWEwYjAyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJh
bCAyNzAKemNtVitwMHJDRWNQKTxoOzNLfExrMDAwZTFOSkxUcTAwMGFDMDAwUkgxXkBzNjJEcl5z
MDAwMFBiVlhRblEqVU47CnpjVlRqNjA2fURMVnIzdm5aREQ2K1FlfE9lZDJ6e1FKT0JVeXV0YEtn
UkN3QlNrK0JWZkZjM3hXcXpzWmVyOHtRdQp6MjRONzIpUjk7T0h0LXJRc280TWxsSDFHQWFnT2FH
VTtkVkx7X2xXO1dmJXkkISMoVV8yUyslLTZUSCRtUXI2QUYKelp9Pj8/byVzUjM2IzQtdl5+OCpA
PXB0Z1chfW98ZkZWQGgyXllCOzVCblVIS2pGIWM+el92VFB6fmFJeHBxcn4rCno2fk1rbFR5fnx6
UzE+PDhJSlVyWDJLflUmdjIrKERMSk9vYyopLX1ZV3o5QylXfns0P1p1JEVrRHQhYlAwR3pCawpV
MU09K3hCPiheYjA3KnFvTTZOPCRnMCVse08jbERACgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhNTVkMTNhZmY0OTQyMmU1YTg3
NjY1MDI5YjczMDA5MTVhNWExNjIuLmE3ODZhMDYxZTkyZjA3OGMyZDFiMGQyNmY0ZDEzM2QwNDVk
OTc4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTU3LDcgKzU3LDYgQEAKIAkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8q
IFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDFEM0NGN0YxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVj
dC5oICovOyB9OwogCQkwMUQzQ0Y4NjE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xTaGFyZWRPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDFE
M0NGODAxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCAqLzsgfTsKIAkJ
MDFEM0NGODcxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMUQzQ0Y4MTE0QkQwQTMwMDBG
RTk5NzAgLyogV2ViR0xTaGFyZWRPYmplY3QuaCAqLzsgfTsKLQkJMDFFNkMyRTQxMTk0QjI4MjAw
NTA4MjFDIC8qIFNwZWxsaW5nRG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDFFNkMyRTMxMTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxsaW5n
RG90QDJ4LnBuZyAqLzsgfTsKIAkJMDU2MkY5NjExNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3Jt
TGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1
NjJGOTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDVGRDY5RTAxMjg0NUQ0MzAwQjJC
RUIzIC8qIERPTVRpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MDI3Q0FE
MEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2MDI3Q0FDMEIxQ0JGQzAwMDg4NEIyRCAvKiBD
b250ZXh0TWVudUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNjMwLDcgKzYyOSw2IEBACiAJCTFDMTJBQzJCMUVFNzc4QUUwMDc5RTBBMCAv
KiBGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzEyQUMyOTFFRTc3OEFFMDA3OUUwQTAgLyogRm9u
dEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFDMThEQTU5MTgxQUY2QTUwMEM0RUYyMiAvKiBUZXh0
UGFpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUMxOERBNTcxODFBRjZBNTAwQzRFRjIyIC8qIFRleHRQYWludGVyLmggKi87IH07CiAJCTFDMjFF
NTdEMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzIxRTU3QjE4M0VEMUZGMDAxQzI4OUQgLyog
SU9TdXJmYWNlUG9vbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTFDMjQxN0JBMTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjQxN0I5
MTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgKi87IH07CiAJCTFDMjRFRUE1
MUM3MjlDRTQwMDgwRjhGQyAvKiBGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyNEVFQTMxQzcyOUNFNDAwODBGOEZDIC8qIEZvbnRG
YWNlU2V0LmggKi87IH07CiAJCTFDMjRFRUE5MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0ZvbnRGYWNl
U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI0
RUVBNzFDNzJBN0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oICovOyB9OwogCQkxQzY2MjYx
MTFDNkU3Q0E2MDBBQjUyN0MgLyogRm9udEZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNjYyNjBGMUM2RTdDQTYwMEFCNTI3QyAvKiBGb250RmFj
ZS5oICovOyB9OwpAQCAtMzg2NSw3ICszODYzLDYgQEAKIAkJQkU4OEUwREYxNzE1RDJBMjAwNjU4
RDk4IC8qIFZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJFODhFMEQzMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkU4OEUwRTExNzE1
RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFODhFMEQ1MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRl
b1RyYWNrTGlzdC5jcHAgKi87IH07CiAJCUJFODhFMEUyMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRl
b1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmggKi87IH07Ci0J
CUJFOEM3NTMxMTA2ODEzMjQwMDFFOTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEM3NTMwMTA2ODEzMjQwMDFF
OTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgKi87IH07CiAJCUJFOEVGMDQzMTcxQzhGRjkwMDlCNDhD
MyAvKiBKU0F1ZGlvVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJFOEVGMDNGMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCAqLzsg
fTsKIAkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEVGMDQxMTcxQzhG
RjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmggKi87IH07CiAJCUJFOEVGMDRCMTcxQzkw
MTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJFOEVGMDQ3MTcxQzkwMTQwMDlCNDhDMyAvKiBKU1ZpZGVvVHJh
Y2suaCAqLzsgfTsKQEAgLTQxMjYsOCArNDEyMyw2IEBACiAJCUQwMDBFQkEzMTFCREFGRDQwMEM0
NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1l
TG9hZGVyU3RhdGVNYWNoaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRDAwMEVEMjgxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDAwRUQy
NjExQzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIg
LyogU3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlEMDJC
NjRCMjE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0Rv
dC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQw
MkI2NEIwMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVz
RG90LnBuZyAqLzsgfTsKLQkJRDAyQjY0QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBo
cmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3RAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDJCNjRCMTE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0
aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgKi87IH07CiAJCUQwNUNFRDJBMEE0
MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBG
b3JtYXRCbG9ja0NvbW1hbmQuaCAqLzsgfTsKIAkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8q
IFJlbW92ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQwNkMwRDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21t
YW5kLmggKi87IH07CiAJCUQwN0RFQUJBMEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29t
bWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDA3
REVBQjgwQTM2NTU0QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggKi87IH07CkBAIC00
ODAxLDcgKzQ3OTYsNiBAQAogCQlFQkY1MTIxRDE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29u
dmVyc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEVCRjUxMjFCMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5oICovOyB9Owog
CQlFQ0E2ODBDNzFFNjc3MjQ1MDA3MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBDNjFFNjc3MjQ1MDA3
MzFEMjAgLyogU3RyaW5nVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUNDREI4ODExRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVu
dE9ic2VydmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEVDQ0RCODgwMUU0QjhDNTkwMEExQUVBNiAvKiBXS0NvbnRlbnRPYnNlcnZh
dGlvbkludGVybmFsLmggKi87IH07Ci0JCUVDQ0RCODg3MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dy
YXBoaWNzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEVDQ0RCODg2MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50ZXJuYWwuaCAq
LzsgfTsKIAkJRUQyQkE4M0MwOUEyNEI5MTAwNkMwQUM0IC8qIERvY3VtZW50TWFya2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFRDJCQTgzQjA5QTI0
QjkxMDA2QzBBQzQgLyogRG9jdW1lbnRNYXJrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFREUzQTUwMDBDN0E0MzA2MDA5NTZBMzcgLyogQ29s
b3JNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVE
RTNBNEZGMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUVERUM5ODAzMEFFRDdFMTcwMDU5MTM3RiAv
KiBXZWJDb3JlUHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oICovOyB9
OwpAQCAtNTE2MCw3ICs1MTU0LDYgQEAKIAkJMDFEM0NGN0YxNEJEMEEzMDAwRkU5OTcwIC8qIFdl
YkdMQ29udGV4dE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
TENvbnRleHRPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDFEM0NGODAx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU2hhcmVkT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDFEM0NGODExNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVk
T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU2hhcmVkT2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTAxRTZDMkUzMTE5NEIyODIwMDUw
ODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiU3BlbGxpbmdEb3RAMngucG5n
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2
IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
dGZvcm1MYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNUZENjlERjEyODQ1
RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTVRpbWVTdGFtcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNjAy
N0NBQzBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYyOTksNyArNjI5Miw2IEBACiAJCTFDMThEQTU3MTgxQUY2QTUwMEM0RUYy
MiAvKiBUZXh0UGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0
UGFpbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzIxRTU3QTE4M0VEMUZG
MDAxQzI4OUQgLyogSU9TdXJmYWNlUG9vbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJT1N1cmZhY2VQb29sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUMyMUU1N0IxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFjZVBvb2wuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSU9TdXJmYWNlUG9vbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxQzI0MTdCOTE5OTJDMDQxMDBFRjk5MzggLyogU3BlbGxpbmdEb3RAM3gu
cG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UucG5nOyBwYXRoID0gIlNwZWxsaW5nRG90QDN4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDMjRFRUExMUM3MjlCMzIwMDgwRjhGQyAvKiBGb250RmFjZVNldC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRm9udEZhY2VTZXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQzI0RUVBMjFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEZhY2VTZXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzI0RUVBMzFDNzI5Q0U0MDA4MEY4RkMgLyogRm9u
dEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEZhY2VTZXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyOTY0LDcgKzEyOTU2LDYgQEAKIAkJ
QkU4OEUwRDUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvVHJhY2tMaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJh
Y2tMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tMaXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFODhFMEQ3MTcxNUQyQTIwMDY1OEQ5
OCAvKiBWaWRlb1RyYWNrTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9UcmFj
a0xpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCRThDNzUzMDEwNjgxMzI0
MDAxRTkzRjUgLyogU3BlbGxpbmdEb3QucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gU3BlbGxpbmdEb3QucG5nOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCRThFRjAzRTE3MUM4RkY5MDA5QjQ4QzMgLyog
SlNBdWRpb1RyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
QXVkaW9UcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJFOEVGMDNGMTcx
QzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNBdWRpb1RyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJF
OEVGMDQwMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9UcmFja0xpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM0NzYsOCArMTM0NjcsNiBAQAogCQlEMDAwRUQyNjEx
QzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3ViZnJhbWVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDAxQTI3QUIxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BhY2VTcGxpdFN0cmluZy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMUEyN0FDMTBDOUJGRDgwMDAyNkE0MiAvKiBT
cGFjZVNwbGl0U3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYWNl
U3BsaXRTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDAyQjY0QjAxNDA4
OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNEb3QucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0RvdC5wbmc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwMkI2NEIxMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRp
b25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJEaWN0YXRpb25Q
aHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUQwMzZERDhEMjA4RkZDMEMwMEY5RjRCMiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVNUQy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFTVEMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0Qmxv
Y2tDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3Jt
YXRCbG9ja0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQy
ODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE0NDU0LDcgKzE0NDQzLDYgQEAKIAkJRUNBNjgwQzYxRTY3NzI0NTAw
NzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNB
NjgwQzgxRTY3NzMwQjAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0cmluZ1V0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNDREI4ODAxRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVu
dE9ic2VydmF0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tDb250ZW50T2JzZXJ2YXRpb25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlFQ0NEQjg4NjFFNEJCNjNGMDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLR3JhcGhpY3NJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFRDJCQTgzQjA5QTI0QjkxMDA2QzBBQzQgLyogRG9j
dW1lbnRNYXJrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRN
YXJrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUQ1MDFEQzUwQjI0OUYyOTAw
QUUxOEQ5IC8qIEVkaXRvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBFZGl0b3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVERTNB
NEZGMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb2xvck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkx
NzEsMTMgKzE5MTU5LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJENTBBNEI1MUNFMTBFMDAw
MDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXIucG5nICovLAogCQkJCTJENTBBNEI2MUNF
MTBFMDAwMDE5ODA0OSAvKiBBdHRhY2htZW50UGxhY2Vob2xkZXJAMngucG5nICovLAotCQkJCUQw
MkI2NEIwMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVz
RG90LnBuZyAqLywKLQkJCQlEMDJCNjRCMTE0MDg5RTU2MDA2RUZBMjEgLyogRGljdGF0aW9uUGhy
YXNlV2l0aEFsdGVybmF0aXZlc0RvdEAyeC5wbmcgKi8sCiAJCQkJRTU5REQ0QjcyMTA5ODI4NTAw
M0M4QjQ3IC8qIExpc3RCdXR0b25BcnJvdy5wbmcgKi8sCiAJCQkJRTUxNjY5OEYyMEZGOTkxNjAw
OUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgKi8sCi0JCQkJQkU4Qzc1MzAxMDY4MTMy
NDAwMUU5M0Y1IC8qIFNwZWxsaW5nRG90LnBuZyAqLywKLQkJCQkwMUU2QzJFMzExOTRCMjgyMDA1
MDgyMUMgLyogU3BlbGxpbmdEb3RAMngucG5nICovLAotCQkJCTFDMjQxN0I5MTk5MkMwNDEwMEVG
OTkzOCAvKiBTcGVsbGluZ0RvdEAzeC5wbmcgKi8sCiAJCQkpOwogCQkJbmFtZSA9IGltYWdlczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTIxNSw3ICsyMTE5OCw2IEBACiAJCQkJ
RUNDREI4ODAxRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVudE9ic2VydmF0aW9uSW50ZXJuYWwu
aCAqLywKIAkJCQlBMTQ4MzJBNDE4N0Y1MDg3MDBEQTYzQTYgLyogV0tHcmFwaGljcy5oICovLAog
CQkJCUExNDgzMkE1MTg3RjUwODcwMERBNjNBNiAvKiBXS0dyYXBoaWNzLm1tICovLAotCQkJCUVD
Q0RCODg2MUU0QkI2M0YwMEExQUVBNiAvKiBXS0dyYXBoaWNzSW50ZXJuYWwuaCAqLywKIAkJCQlB
MTQ4MzJBNjE4N0Y1MDg3MDBEQTYzQTYgLyogV0tUeXBlcy5oICovLAogCQkJCUExNDgzMkE3MTg3
RjUwODcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5jICovLAogCQkJCUExNDgzMkE4MTg3RjUwODcw
MERBNjNBNiAvKiBXS1V0aWxpdGllcy5oICovLApAQCAtMzA5MTIsNyArMzA4OTQsNiBAQAogCQkJ
CUExNDgzMkJFMTg3RjY0Q0MwMERBNjNBNiAvKiBXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRUNDREI4ODExRTRCOEM1OTAwQTFBRUE2IC8qIFdLQ29udGVudE9ic2Vy
dmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDgzMkJGMTg3RjY1MkMwMERB
NjNBNiAvKiBXS0dyYXBoaWNzLmggaW4gSGVhZGVycyAqLywKLQkJCQlFQ0NEQjg4NzFFNEJCNjNG
MDBBMUFFQTYgLyogV0tHcmFwaGljc0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ4
MzJDMTE4N0Y2NTdBMDBEQTYzQTYgLyogV0tUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0
ODMyQzMxODdGNjVERjAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMTQ4MzJDNDE4N0Y2NjNDMDBEQTYzQTYgLyogV0tWaWV3LmggaW4gSGVhZGVycyAqLywKQEAg
LTMxMTM3LDggKzMxMTE4LDYgQEAKIAkJCQkyRDUwQTRCODFDRTEwRTAwMDAxOTgwNDkgLyogQXR0
YWNobWVudFBsYWNlaG9sZGVyQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTFBQTlBQjkx
RDIzOTExNTAwRkVBREIzIC8qIENvbnRlbnRGaWx0ZXJCbG9ja2VkUGFnZS5odG1sIGluIFJlc291
cmNlcyAqLywKIAkJCQlBMTFFOEMwNTFCMUUyOEY0MDAwM0E3QzcgLyogY29weUN1cnNvci5wbmcg
aW4gUmVzb3VyY2VzICovLAotCQkJCUQwMkI2NEIyMTQwODlFNTYwMDZFRkEyMSAvKiBEaWN0YXRp
b25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzRG90LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJRDAy
QjY0QjMxNDA4OUU1NjAwNkVGQTIxIC8qIERpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXNE
b3RAMngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk3Q0M3RTNENzE3MjA4QzBGMDAzQzUyNzcg
LyogSUROU2NyaXB0V2hpdGVMaXN0LnR4dCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMkQ5RjBFMTMx
NEZGMUNCRjAwQkEwRkY3IC8qIGxpbmVhclNSR0IuaWNjIGluIFJlc291cmNlcyAqLywKIAkJCQlF
NTlERDRCODIxMDk4Mjg3MDAzQzhCNDcgLyogTGlzdEJ1dHRvbkFycm93LnBuZyBpbiBSZXNvdXJj
ZXMgKi8sCkBAIC0zMTE1OSw5ICszMTEzOCw2IEBACiAJCQkJQTExRThDMDcxQjFFMjhGRTAwMDNB
N0M3IC8qIG5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICov
LAogCQkJCUExMUU4QzA4MUIxRTI5MDIwMDAzQTdDNyAvKiBub3J0aFNvdXRoUmVzaXplQ3Vyc29y
LnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTExRThDMDkxQjFFMjkwNzAwMDNBN0M3IC8qIG5v
cnRoV2VzdFNvdXRoRWFzdFJlc2l6ZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAotCQkJCUJF
OEM3NTMxMTA2ODEzMjQwMDFFOTNGNSAvKiBTcGVsbGluZ0RvdC5wbmcgaW4gUmVzb3VyY2VzICov
LAotCQkJCTAxRTZDMkU0MTE5NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgaW4g
UmVzb3VyY2VzICovLAotCQkJCTFDMjQxN0JBMTk5MkMwNDEwMEVGOTkzOCAvKiBTcGVsbGluZ0Rv
dEAzeC5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTkzMTUzQkRDMTQxOTU5QkMwMEZDRjVCRSAv
KiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTkzNzA5MThE
MTQxNkQ4NkIwMDQ3NzMzMyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lckAyeC5wbmcgaW4gUmVzb3Vy
Y2VzICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDhjNWE3NzliNzMzYzkwYTdkZmFi
YTdhYjMwMThhNzFkOWM0MTllODcuLmUxMmI1ZmZjY2QwMjUwMzE3NDFkMmVhNzBiMmViODUyZmIz
NzllMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTMzLDggKzkzMyw2IEBAIHZvaWQgUGFnZTo6
c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgbWFpbkZyYW1lKCku
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAgICAgUGFnZUNhY2hlOjpzaW5nbGV0
b24oKS5tYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKnRoaXMpOwogCi0gICAg
R3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcygpOwotCiAgICAg
cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaAppbmRleCA1N2IzYmY0NjZmODM0YjVhMWVhMzQ4ZDBkM2JkNDVmM2U1NWNmNTdiLi40OTdk
MmM3OWZkMmNiMDhmYzNkMGNjYmY4ZjhlYTIyNzNjNDMxMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDIyLDcgKzQy
Miw2IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgY29tcHV0ZVVuZGVybGluZUJvdW5kc0ZvclRl
eHQoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0IHdpZHRoLCBib29sIHByaW50aW5nKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiwgZmxv
YXQgd2lkdGgsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMgPSBmYWxzZSwgU3Ryb2tl
U3R5bGUgPSBTb2xpZFN0cm9rZSk7CiAgICAgdm9pZCBkcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZs
b2F0UG9pbnQmLCBjb25zdCBEYXNoQXJyYXkmIHdpZHRocywgYm9vbCBwcmludGluZywgYm9vbCBk
b3VibGVMaW5lcyA9IGZhbHNlLCBTdHJva2VTdHlsZSA9IFNvbGlkU3Ryb2tlKTsKLSAgICBzdGF0
aWMgdm9pZCB1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcygpOwogICAgIHZvaWQgZHJhd0xp
bmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgd2lkdGgsIERvY3Vt
ZW50TWFya2VyTGluZVN0eWxlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYmVnaW5UcmFu
c3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNw
cAppbmRleCA4Y2ZiMWU5MjI1N2U0MzI1MjcwNmFlYTU0NWI0MjYzOTRmZTk5ZmQ2Li41Zjg1NzBi
MTIxNzA1YTZiYTkxNTA2ZTMxYmVkOTdmNjQ3ODhjZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
Q2Fpcm8uY3BwCkBAIC0zMzcsMTEgKzMzNyw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBEYXNoQXJyYXkmCiAg
ICAgQ2Fpcm86OmRyYXdMaW5lc0ZvclRleHQoKnBsYXRmb3JtQ29udGV4dCgpLCBwb2ludCwgd2lk
dGhzLCBwcmludGluZywgZG91YmxlVW5kZXJsaW5lcywgbV9zdGF0ZS5zdHJva2VDb2xvciwgbV9z
dGF0ZS5zdHJva2VUaGlja25lc3MpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6dXBkYXRl
RG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMoKQotewotICAgIC8vIFVubmVjZXNzYXJ5LCBzaW5jZSBv
dXIgZG9jdW1lbnQgbWFya2VycyBkb24ndCB1c2UgcmVzb3VyY2VzLgotfQotCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBv
cmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKIHsKICAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQppbmRl
eCBiNWE5ZDY2OGYxOGE1OTE4YmEyOGM5ZWRlYzBhZGVlYjdlZGZjZDEwLi5iMTU3ODY1ZGYzZjdj
YzkwYmUxZmEwMTIzMTFmOTFiNGM2YjhjMjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5t
bQpAQCAtNDEsNyArNDEsNiBAQAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIkNvbG9yLmgi
CiAjaW1wb3J0ICJXS0dyYXBoaWNzLmgiCi0jaW1wb3J0ICJXS0dyYXBoaWNzSW50ZXJuYWwuaCIK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTc0LDUxICsxNzMsNiBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgcmVj
dHMsIGZsb2F0IHdpZHRoLAogI2VuZGlmCiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi0KLXN0YXRp
YyBOU0ltYWdlICpmaW5kSW1hZ2UoTlNTdHJpbmcqIGZpcnN0Q2hvaWNlTmFtZSwgTlNTdHJpbmcq
IHNlY29uZENob2ljZU5hbWUsIGJvb2wmIHVzaW5nRG90KQotewotICAgIC8vIEV2ZW50dWFsbHkg
d2Ugc2hvdWxkIGJlIGFibGUgdG8gZ2V0IHJpZCBvZiB0aGUgc2Vjb25kQ2hvaWNlTmFtZS4gRm9y
IHRoZSB0aW1lIGJlaW5nIHdlIG5lZWQgYm90aCB0byBrZWVwCi0gICAgLy8gdGhpcyB3b3JraW5n
IG9uIGFsbCBwbGF0Zm9ybXMuCi0gICAgTlNJbWFnZSAqaW1hZ2UgPSBbTlNJbWFnZSBpbWFnZU5h
bWVkOmZpcnN0Q2hvaWNlTmFtZV07Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAgaW1hZ2UgPSBb
TlNJbWFnZSBpbWFnZU5hbWVkOnNlY29uZENob2ljZU5hbWVdOwotICAgIEFTU0VSVChpbWFnZSk7
IC8vIGlmIGltYWdlIGlzIG5vdCBhdmFpbGFibGUsIHdlIHdhbnQgdG8ga25vdwotICAgIHVzaW5n
RG90ID0gaW1hZ2U7Ci0gICAgcmV0dXJuIGltYWdlOwotfQotCi0vLyBGSVhNRTogU2hvdWxkIHVz
ZSBSZXRhaW5QdHIgaW5zdGVhZCBvZiBoYW5kd3JpdHRlbiByZXRhaW4vcmVsZWFzZS4KLXN0YXRp
YyBOU0ltYWdlICpzcGVsbGluZ0ltYWdlID0gbnVsbHB0cjsKLXN0YXRpYyBOU0ltYWdlICpncmFt
bWFySW1hZ2UgPSBudWxscHRyOwotc3RhdGljIE5TSW1hZ2UgKmNvcnJlY3Rpb25JbWFnZSA9IG51
bGxwdHI7Ci0KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0gKElPUykKLQotc3RhdGljIFJldGFpblB0
cjxDR1BhdHRlcm5SZWY+IGNyZWF0ZURvdFBhdHRlcm4oYm9vbCYgdXNpbmdEb3QsIGNvbnN0IGNo
YXIqIHJlc291cmNlTmFtZSkKLXsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBh
ZG9wdENGKFdLR3JhcGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFtZShyZXNvdXJjZU5h
bWUpKTsKLSAgICBBU1NFUlQoaW1hZ2UpOyAvLyBpZiBpbWFnZSBpcyBub3QgYXZhaWxhYmxlLCB3
ZSB3YW50IHRvIGtub3cKLSAgICB1c2luZ0RvdCA9IHRydWU7Ci0gICAgcmV0dXJuIGFkb3B0Q0Yo
V0tDcmVhdGVQYXR0ZXJuRnJvbUNHSW1hZ2UoaW1hZ2UuZ2V0KCkpKTsKLX0KLQotI2VuZGlmCi0K
LXZvaWQgR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcygpCi17
Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIFtzcGVsbGluZ0ltYWdlIHJlbGVhc2VdOwotICAgIHNw
ZWxsaW5nSW1hZ2UgPSBudWxscHRyOwotICAgIFtncmFtbWFySW1hZ2UgcmVsZWFzZV07Ci0gICAg
Z3JhbW1hckltYWdlID0gbnVsbHB0cjsKLSAgICBbY29ycmVjdGlvbkltYWdlIHJlbGVhc2VdOwot
ICAgIGNvcnJlY3Rpb25JbWFnZSA9IG51bGxwdHI7Ci0jZW5kaWYKLX0KLQogc3RhdGljIGlubGlu
ZSB2b2lkIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNlKENHQ29udGV4dFJlZiBjb250ZXh0LCBD
R1BvaW50IHBoYXNlUG9pbnQpCiB7CiAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdXNlclRvQmFzZSA9
IGdldFVzZXJUb0Jhc2VDVE0oY29udGV4dCk7CkBAIC0yMjcsMTQyICsxODEsMTAgQEAgc3RhdGlj
IGlubGluZSB2b2lkIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNlKENHQ29udGV4dFJlZiBjb250
ZXh0LCBDR1BvaW50IHBoYXMKICAgICBDR0NvbnRleHRTZXRQYXR0ZXJuUGhhc2UoY29udGV4dCwg
Q0dTaXplTWFrZShwaGFzZS54LCBwaGFzZS55KSk7CiB9CiAKLS8vIFdlYktpdCBvbiBNYWMgaXMg
YSBzdGFuZGFyZCBwbGF0Zm9ybSBjb21wb25lbnQsIHNvIGl0IG11c3QgdXNlIHRoZSBzdGFuZGFy
ZCBwbGF0Zm9ybSBhcnR3b3JrIGZvciB1bmRlcmxpbmUuCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQg
d2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQorLy8gRklYTUU6IFdlIG5lZWQg
dG8ga2VlcCB0aGlzIGZ1bmN0aW9uIHNpbmNlIGl0IGlzIHJlZmVyZW5jZWQgYnkgRHJhd0xpbmVG
b3JEb2N1bWVudE1hcmtlcjo6YXBwbHkoKS4KK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCwgRG9jdW1lbnRNYXJr
ZXJMaW5lU3R5bGUpCiB7Ci0gICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1lIGZvciBtaXNzcGVsbGluZyBvciBiYWQg
Z3JhbW1hci4KLSAgICBpbnQgcGF0dGVybkhlaWdodCA9IGNNaXNzcGVsbGluZ0xpbmVUaGlja25l
c3M7Ci0gICAgZmxvYXQgcGF0dGVybldpZHRoID0gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0
aDsKLQotICAgIGJvb2wgdXNpbmdEb3Q7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBOU0ltYWdl
ICppbWFnZTsKLSAgICBOU0NvbG9yICpmYWxsYmFja0NvbG9yOwotI2Vsc2UKLSAgICBDR1BhdHRl
cm5SZWYgZG90UGF0dGVybjsKLSNlbmRpZgotICAgIHN3aXRjaCAoc3R5bGUpIHsKLSAgICBjYXNl
IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpTcGVsbGluZzogewotICAgICAgICAvLyBDb25zdGFu
dHMgZm9yIHNwZWxsaW5nIHBhdHRlcm4gY29sb3IuCi0gICAgICAgIHN0YXRpYyBib29sIHVzaW5n
RG90Rm9yU3BlbGxpbmcgPSBmYWxzZTsKLSNpZiAhUExBVEZPUk0oSU9TKQotICAgICAgICBpZiAo
IXNwZWxsaW5nSW1hZ2UpCi0gICAgICAgICAgICBzcGVsbGluZ0ltYWdlID0gW2ZpbmRJbWFnZShA
Ik5TU3BlbGxpbmdEb3QiLCBAIlNwZWxsaW5nRG90IiwgdXNpbmdEb3RGb3JTcGVsbGluZykgcmV0
YWluXTsKLSAgICAgICAgaW1hZ2UgPSBzcGVsbGluZ0ltYWdlOwotICAgICAgICBmYWxsYmFja0Nv
bG9yID0gW05TQ29sb3IgcmVkQ29sb3JdOwotI2Vsc2UKLSAgICAgICAgc3RhdGljIENHUGF0dGVy
blJlZiBzcGVsbGluZ1BhdHRlcm4gPSBjcmVhdGVEb3RQYXR0ZXJuKHVzaW5nRG90Rm9yU3BlbGxp
bmcsICJTcGVsbGluZ0RvdCIpLmxlYWtSZWYoKTsKLSAgICAgICAgZG90UGF0dGVybiA9IHNwZWxs
aW5nUGF0dGVybjsKLSNlbmRpZgotICAgICAgICB1c2luZ0RvdCA9IHVzaW5nRG90Rm9yU3BlbGxp
bmc7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0
eWxlOjpHcmFtbWFyOiB7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgLy8gQ29uc3RhbnRz
IGZvciBncmFtbWFyIHBhdHRlcm4gY29sb3IuCi0gICAgICAgIHN0YXRpYyBib29sIHVzaW5nRG90
Rm9yR3JhbW1hciA9IGZhbHNlOwotICAgICAgICBpZiAoIWdyYW1tYXJJbWFnZSkKLSAgICAgICAg
ICAgIGdyYW1tYXJJbWFnZSA9IFtmaW5kSW1hZ2UoQCJOU0dyYW1tYXJEb3QiLCBAIkdyYW1tYXJE
b3QiLCB1c2luZ0RvdEZvckdyYW1tYXIpIHJldGFpbl07Ci0gICAgICAgIHVzaW5nRG90ID0gZ3Jh
bW1hckltYWdlOwotICAgICAgICBpbWFnZSA9IGdyYW1tYXJJbWFnZTsKLSAgICAgICAgZmFsbGJh
Y2tDb2xvciA9IFtOU0NvbG9yIGdyZWVuQ29sb3JdOwotICAgICAgICBicmVhazsKLSNlbHNlCi0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0jZW5kaWYKLSAg
ICB9Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIC8vIFRvIHN1cHBvcnQgY29ycmVjdGlvbiBwYW5l
bC4KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpBdXRvY29ycmVjdGlvblJlcGxh
Y2VtZW50OgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkRpY3RhdGlvbkFsdGVy
bmF0aXZlczogewotICAgICAgICAvLyBDb25zdGFudHMgZm9yIHNwZWxsaW5nIHBhdHRlcm4gY29s
b3IuCi0gICAgICAgIHN0YXRpYyBib29sIHVzaW5nRG90Rm9yU3BlbGxpbmcgPSBmYWxzZTsKLSAg
ICAgICAgaWYgKCFjb3JyZWN0aW9uSW1hZ2UpCi0gICAgICAgICAgICBjb3JyZWN0aW9uSW1hZ2Ug
PSBbZmluZEltYWdlKEAiTlNDb3JyZWN0aW9uRG90IiwgQCJDb3JyZWN0aW9uRG90IiwgdXNpbmdE
b3RGb3JTcGVsbGluZykgcmV0YWluXTsKLSAgICAgICAgdXNpbmdEb3QgPSB1c2luZ0RvdEZvclNw
ZWxsaW5nOwotICAgICAgICBpbWFnZSA9IGNvcnJlY3Rpb25JbWFnZTsKLSAgICAgICAgZmFsbGJh
Y2tDb2xvciA9IFtOU0NvbG9yIGJsdWVDb2xvcl07Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSNl
bmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxl
OjpUZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOiB7Ci0gICAgICAg
IHN0YXRpYyBib29sIHVzaW5nRG90Rm9yRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlcyA9
IGZhbHNlOwotICAgICAgICBzdGF0aWMgQ0dQYXR0ZXJuUmVmIGRpY3RhdGlvblBocmFzZVdpdGhB
bHRlcm5hdGl2ZXNQYXR0ZXJuID0gY3JlYXRlRG90UGF0dGVybih1c2luZ0RvdEZvckRpY3RhdGlv
blBocmFzZVdpdGhBbHRlcm5hdGl2ZXMsICJEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVz
RG90IikubGVha1JlZigpOwotICAgICAgICBkb3RQYXR0ZXJuID0gZGljdGF0aW9uUGhyYXNlV2l0
aEFsdGVybmF0aXZlc1BhdHRlcm47Ci0gICAgICAgIHVzaW5nRG90ID0gdXNpbmdEb3RGb3JEaWN0
YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQotICAgIGRlZmF1bHQ6Ci0jaWYgUExBVEZPUk0oSU9TKQotICAg
ICAgICAvLyBGSVhNRTogU2hvdWxkIHJlbW92ZSBkZWZhdWx0IGNhc2Ugc28gd2UgZ2V0IGNvbXBp
bGUtdGltZSBlcnJvcnMuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBGbG9hdFBv
aW50IG9mZnNldFBvaW50ID0gcG9pbnQ7Ci0KLSAgICAvLyBNYWtlIHN1cmUgdG8gZHJhdyBvbmx5
IGNvbXBsZXRlIGRvdHMuCi0gICAgaWYgKHVzaW5nRG90KSB7Ci0gICAgICAgIC8vIGFsbG93IHNs
aWdodGx5IG1vcmUgY29uc2lkZXJpbmcgdGhhdCB0aGUgcGF0dGVybiBlbmRzIHdpdGggYSB0cmFu
c3BhcmVudCBwaXhlbAotICAgICAgICBmbG9hdCB3aWR0aE1vZCA9IGZtb2RmKHdpZHRoLCBwYXR0
ZXJuV2lkdGgpOwotICAgICAgICBpZiAocGF0dGVybldpZHRoIC0gd2lkdGhNb2QgPiBjTWlzc3Bl
bGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKSB7Ci0gICAgICAgICAgICBmbG9hdCBnYXBJbmNsdWRl
V2lkdGggPSAwOwotICAgICAgICAgICAgaWYgKHdpZHRoID4gcGF0dGVybldpZHRoKQotICAgICAg
ICAgICAgICAgIGdhcEluY2x1ZGVXaWR0aCA9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lk
dGg7Ci0gICAgICAgICAgICBvZmZzZXRQb2ludC5tb3ZlKGZsb29yKCh3aWR0aE1vZCArIGdhcElu
Y2x1ZGVXaWR0aCkgLyAyKSwgMCk7Ci0gICAgICAgICAgICB3aWR0aCAtPSB3aWR0aE1vZDsKLSAg
ICAgICAgfQotICAgIH0KLSAgICAKLSAgICAvLyBGSVhNRTogVGhpcyBjb2RlIHNob3VsZCBub3Qg
dXNlIE5TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0Ci0gICAgLy8gSW4gb3JkZXIgdG8g
cmVtb3ZlIHRoaXMgcmVxdWlyZW1lbnQgd2Ugd2lsbCBuZWVkIHRvIHVzZSBDR1BhdHRlcm4gaW5z
dGVhZCBvZiBOU0NvbG9yCi0gICAgLy8gRklYTUU6IFRoaXMgY29kZSBzaG91bGQgbm90IGJlIHVz
aW5nIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNlLCBhcyB0aGlzIGFwcHJvYWNoIGlzIHdyb25n
Ci0gICAgLy8gZm9yIHRyYW5zZm9ybXMuCi0KLSAgICAvLyBEcmF3IHVuZGVybGluZS4KLSAgICBD
R0NvbnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29udGV4dCgpOwotICAgIENHQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlciB7IGNvbnRleHQgfTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAg
ICBXS1NldFBhdHRlcm4oY29udGV4dCwgZG90UGF0dGVybiwgWUVTLCBZRVMpOwotI2VuZGlmCi0K
LSAgICBzZXRQYXR0ZXJuUGhhc2VJblVzZXJTcGFjZShjb250ZXh0LCBvZmZzZXRQb2ludCk7Ci0K
LSAgICBDR1JlY3QgZGVzdGluYXRpb25SZWN0ID0gQ0dSZWN0TWFrZShvZmZzZXRQb2ludC54KCks
IG9mZnNldFBvaW50LnkoKSwgd2lkdGgsIHBhdHRlcm5IZWlnaHQpOwotI2lmICFQTEFURk9STShJ
T1MpCi0gICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4
dCwgZGVzdGluYXRpb25SZWN0KTsKLQotICAgICAgICAvLyBXZSBleHBsaWNpdGx5IGZsaXAgY29v
cmRpbmF0ZXMgc28gYXMgdG8gZW5zdXJlIHdlIHBhaW50IHRoZSBpbWFnZSByaWdodC1zaWRlIHVw
LiBXZSBkbyB0aGlzIGJlY2F1c2UKLSAgICAgICAgLy8gLVtOU0ltYWdlIENHSW1hZ2VGb3JQcm9w
b3NlZFJlY3Q6Y29udGV4dDpoaW50czpdIGRvZXMgbm90IGd1YXJhbnRlZSB0aGF0IHRoZSByZXR1
cm5lZCBpbWFnZSB3aWxsIHJlc3BlY3QKLSAgICAgICAgLy8gYW55IHRyYW5zZm9ybXMgYXBwbGll
ZCB0byB0aGUgY29udGV4dCBvciBhbnkgc3BlY2lmaWVkIGhpbnRzLgotICAgICAgICBDR0NvbnRl
eHRUcmFuc2xhdGVDVE0oY29udGV4dCwgMCwgcGF0dGVybkhlaWdodCk7Ci0gICAgICAgIENHQ29u
dGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEsIC0xKTsKLQotICAgICAgICBOU1JlY3QgZG90UmVjdCA9
IE5TTWFrZVJlY3Qob2Zmc2V0UG9pbnQueCgpLCBwYXR0ZXJuSGVpZ2h0IC0gb2Zmc2V0UG9pbnQu
eSgpLCBwYXR0ZXJuV2lkdGgsIHBhdHRlcm5IZWlnaHQpOyAvLyBBZGp1c3QgeSBwb3NpdGlvbiBh
cyB3ZSBmbGlwcGVkIGNvb3JkaW5hdGVzLgotCi0gICAgICAgIC8vIEZJWE1FOiBSYXRoZXIgdGhh
biBnZXR0aW5nIHRoZSBOU0ltYWdlIGFuZCB0aGVuIHBpY2tpbmcgdGhlIENHSW1hZ2UgZnJvbSBp
dCwgd2Ugc2hvdWxkIGRvIHdoYXQgaU9TIGRvZXMgYW5kCi0gICAgICAgIC8vIGp1c3QgbG9hZCB0
aGUgQ0dJbWFnZSBpbiB0aGUgZmlyc3QgcGxhY2UuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgICAgIENHSW1hZ2VSZWYgY2dJbWFnZSA9IFtpbWFnZSBDR0ltYWdlRm9y
UHJvcG9zZWRSZWN0OiZkb3RSZWN0IGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNz
Q29udGV4dFdpdGhHcmFwaGljc1BvcnQ6Y29udGV4dCBmbGlwcGVkOk5PXSBoaW50czpudWxscHRy
XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAgICAgQ0dDb250ZXh0RHJhd1Rp
bGVkSW1hZ2UoY29udGV4dCwgTlNSZWN0VG9DR1JlY3QoZG90UmVjdCksIGNnSW1hZ2UpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIENHQ29udGV4dFNldEZpbGxDb2xvcldpdGhDb2xvcihjb250ZXh0
LCBbZmFsbGJhY2tDb2xvciBDR0NvbG9yXSk7Ci0gICAgICAgIENHQ29udGV4dEZpbGxSZWN0KGNv
bnRleHQsIGRlc3RpbmF0aW9uUmVjdCk7Ci0gICAgfQotI2Vsc2UKLSAgICBXS1JlY3RGaWxsVXNp
bmdPcGVyYXRpb24oY29udGV4dCwgZGVzdGluYXRpb25SZWN0LCBrQ0dDb21wb3NpdGVTb3Zlcik7
Ci0jZW5kaWYKKyAgICAvLyBDb2NvYSBwbGF0Zm9ybXMgdXNlIFJlbmRlclRoZW1lOjpkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKCkgdG8gcGFpbnQgdGhlIHBsYXRmb3JtIGRvY3VtZW50IG1hcmtl
cnMuCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3Bw
CmluZGV4IGM2OGU2MDZjMDg0NDdjM2I0MDJkMTg3ZjJlNjkyZjU3Y2Q2OWNmMjkuLjEyMDYzOGIy
NTFiNDI5N2Y5YTNkZmUxM2Y1MzVlYmFhYTk3NzJmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2lu
LmNwcApAQCAtMTg1LDExICsxODUsNiBAQCBzdGF0aWMgY29uc3QgQ29sb3ImIGdyYW1tYXJQYXR0
ZXJuQ29sb3IoKSB7CiAgICAgcmV0dXJuIGdyYW1tYXJDb2xvcjsKIH0KIAotdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVzb3VyY2VzKCkKLXsKLSAgICAvLyBVbm5l
Y2Vzc2FyeSwgc2luY2Ugb3VyIGRvY3VtZW50IG1hcmtlcnMgZG9uJ3QgdXNlIHJlc291cmNlcy4K
LX0KLQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHls
ZSBzdHlsZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJE
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHREaXJlY3QyRC5jcHAKaW5kZXggMmY4MjE2MWIzZjQ4OTFjMGNiNDlkYWNiMTJmYTRjNTIwYWI2
MDNiYS4uNWVhY2UxMDg4NjY3YzIyOWI1YWZjMzllYzkzNjg3ZTBkNDVhNTJmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERp
cmVjdDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3Jh
cGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCkBAIC0zMTksMTAgKzMxOSw2IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywg
ZmxvYXQgd2lkdGgsCiB7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojp1cGRhdGVEb2N1bWVu
dE1hcmtlclJlc291cmNlcygpCi17Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9hdCB3aWR0aCwg
RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3Mvd2FrL1dLR3JhcGhpY3MubW0KaW5kZXggNjhlYjZkZWU3YjZjNzJjZGRlNzlj
YmFjOTFmNmUyNWY3MDFhNDYwOC4uZGZjNmUwZWUzNWY3ZjhmNDlmY2Q2MDkzMDJiNzRkMzFjOTYw
YmVkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL3dhay9XS0dyYXBo
aWNzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93YWsvV0tHcmFwaGljcy5t
bQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNSwxNiArMjUsMTEgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJXS0dyYXBoaWNzLmgiCi0jaW1wb3J0ICJXS0dyYXBoaWNzSW50ZXJuYWwuaCIK
IAogI2lmIFBMQVRGT1JNKElPUykKIAotI2ltcG9ydCAiRm9udENhc2NhZGUuaCIKLSNpbXBvcnQg
IlBsYXRmb3JtU2NyZWVuLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFkSW50ZXJuYWwuaCIKLSNp
bXBvcnQgPEltYWdlSU8vSW1hZ2VJTy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaD4KLSNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKQEAgLTU2LDI4ICs1MSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX0ZpbGxS
ZWN0c1VzaW5nT3BlcmF0aW9uKENHQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBDR1JlY3QqCiAg
ICAgQ0dDb250ZXh0U2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbnRleHQsIG9sZE9wKTsKIH0KIAot
c3RhdGljIGlubGluZSB2b2lkIF9GaWxsUmVjdFVzaW5nT3BlcmF0aW9uKENHQ29udGV4dFJlZiBj
b250ZXh0LCBDR1JlY3QgcmVjdCwgQ0dDb21wb3NpdGVPcGVyYXRpb24gb3ApCi17Ci0gICAgaWYg
KHJlY3Quc2l6ZS53aWR0aCA+IDAgJiYgcmVjdC5zaXplLmhlaWdodCA+IDApIHsKLSAgICAgICAg
X0ZpbGxSZWN0c1VzaW5nT3BlcmF0aW9uIChjb250ZXh0LCAmcmVjdCwgMSwgb3ApOwotICAgIH0K
LX0KLQogdm9pZCBXS1JlY3RGaWxsKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgYVJlY3Qp
CiB7CiAgICAgaWYgKGFSZWN0LnNpemUud2lkdGggPiAwICYmIGFSZWN0LnNpemUuaGVpZ2h0ID4g
MCkgewogICAgICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwotICAgICAgICBfRmls
bFJlY3RVc2luZ09wZXJhdGlvbihjb250ZXh0LCBhUmVjdCwga0NHQ29tcG9zaXRlQ29weSk7Ci0g
ICAgICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7Ci0gICAgfQotfQotCi12b2lk
IFdLUmVjdEZpbGxVc2luZ09wZXJhdGlvbihDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IGFS
ZWN0LCBXS0NvbXBvc2l0ZU9wZXJhdGlvbiBjb21wb3NpdGVPcGVyYXRpb24pCi17Ci0gICAgQ09N
UElMRV9BU1NFUlQoc2l6ZW9mKFdLQ29tcG9zaXRlT3BlcmF0aW9uKSA9PSBzaXplb2YoQ0dDb21w
b3NpdGVPcGVyYXRpb24pLCAiV0tDb21wb3NpdGVPcGVyYXRpb24gbXVzdCBiZSB0aGUgc2FtZSBz
aXplIGFzIENHQ29tcG9zaXRlT3BlcmF0aW9uLiIpOwotICAgIGlmIChhUmVjdC5zaXplLndpZHRo
ID4gMCAmJiBhUmVjdC5zaXplLmhlaWdodCA+IDAuMCkgewotICAgICAgICBDR0NvbnRleHRTYXZl
R1N0YXRlKGNvbnRleHQpOwotICAgICAgICBfRmlsbFJlY3RVc2luZ09wZXJhdGlvbihjb250ZXh0
LCBhUmVjdCwgc3RhdGljX2Nhc3Q8Q0dDb21wb3NpdGVPcGVyYXRpb24+KGNvbXBvc2l0ZU9wZXJh
dGlvbikpOworICAgICAgICBpZiAoYVJlY3Quc2l6ZS53aWR0aCA+IDAgJiYgYVJlY3Quc2l6ZS5o
ZWlnaHQgPiAwKQorICAgICAgICAgICAgX0ZpbGxSZWN0c1VzaW5nT3BlcmF0aW9uKGNvbnRleHQs
ICZhUmVjdCwgMSwga0NHQ29tcG9zaXRlQ29weSk7CiAgICAgICAgIENHQ29udGV4dFJlc3RvcmVH
U3RhdGUoY29udGV4dCk7CiAgICAgfQogfQpAQCAtOTQsODMgKzczLDQgQEAgQ0dDb250ZXh0UmVm
IFdLR2V0Q3VycmVudEdyYXBoaWNzQ29udGV4dCh2b2lkKQogICAgIHJldHVybiB0aHJlYWRDb250
ZXh0LT5jdXJyZW50Q0dDb250ZXh0OwogfQogCi1zdGF0aWMgTlNTdHJpbmcgKmltYWdlUmVzb3Vy
Y2VQYXRoKGNvbnN0IGNoYXIqIGltYWdlRmlsZSwgdW5zaWduZWQgc2NhbGVGYWN0b3IpCi17Ci0g
ICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gc2NhbGVGYWN0b3IgPT0gMSA/IFtOU1N0cmluZyBzdHJp
bmdXaXRoVVRGOFN0cmluZzppbWFnZUZpbGVdIDogW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
QCIlc0AlZHgiLCBpbWFnZUZpbGUsIHNjYWxlRmFjdG9yXTsKLSNpZiBQTEFURk9STShJT1NfU0lN
VUxBVE9SKQotICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlV2l0aElkZW50
aWZpZXI6QCJjb20uYXBwbGUuV2ViQ29yZSJdOwotICAgIHJldHVybiBbYnVuZGxlIHBhdGhGb3JS
ZXNvdXJjZTpmaWxlTmFtZSBvZlR5cGU6QCJwbmciXTsKLSNlbHNlCi0gICAgLy8gV29ya2Fyb3Vu
ZCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzc3ODA2NjU+IENGQnVuZGxlQ29weVJlc291cmNlVVJMIHRh
a2VzIGEgbG9uZyB0aW1lIG9uIGlQaG9uZSAzRy4KLSAgICBOU1N0cmluZyAqaW1hZ2VEaXJlY3Rv
cnkgPSBAIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9XZWJDb3JlLmZyYW1ld29y
ayI7Ci0gICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAvJUAucG5nIiwg
aW1hZ2VEaXJlY3RvcnksIGZpbGVOYW1lXTsKLSNlbmRpZgotfQotCi1DR0ltYWdlUmVmIFdLR3Jh
cGhpY3NDcmVhdGVJbWFnZUZyb21CdW5kbGVXaXRoTmFtZShjb25zdCBjaGFyICppbWFnZV9maWxl
KQotewotICAgIGlmICghaW1hZ2VfZmlsZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBD
R0ltYWdlUmVmIGltYWdlID0gbnVsbHB0cjsKLSAgICBOU0RhdGEgKmltYWdlRGF0YSA9IG51bGxw
dHI7Ci0gICAgZm9yICh1bnNpZ25lZCBzY2FsZUZhY3RvciA9IHNjcmVlblNjYWxlRmFjdG9yKCk7
IHNjYWxlRmFjdG9yID4gMDsgLS1zY2FsZUZhY3RvcikgewotICAgICAgICBpbWFnZURhdGEgPSBb
TlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6aW1hZ2VSZXNvdXJjZVBhdGgoaW1hZ2VfZmls
ZSwgc2NhbGVGYWN0b3IpXTsKLSAgICAgICAgQVNTRVJUKHNjYWxlRmFjdG9yICE9IHNjcmVlblNj
YWxlRmFjdG9yKCkgfHwgaW1hZ2VEYXRhKTsKLSAgICAgICAgaWYgKGltYWdlRGF0YSkKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAoaW1hZ2VEYXRhKSB7Ci0gICAgICAg
IFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0Rh
dGFQcm92aWRlckNyZWF0ZVdpdGhDRkRhdGEocmVpbnRlcnByZXRfY2FzdDxDRkRhdGFSZWY+KGlt
YWdlRGF0YSkpKTsKLSAgICAgICAgaW1hZ2UgPSBDR0ltYWdlQ3JlYXRlV2l0aFBOR0RhdGFQcm92
aWRlcihkYXRhUHJvdmlkZXIuZ2V0KCksIG51bGxwdHIsIE5PLCBrQ0dSZW5kZXJpbmdJbnRlbnRE
ZWZhdWx0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gaW1hZ2U7Ci19Ci0KLXN0YXRpYyB2b2lkIFdL
RHJhd1BhdHRlcm5CaXRtYXAodm9pZCAqaW5mbywgQ0dDb250ZXh0UmVmIGMpIAotewotICAgIENH
SW1hZ2VSZWYgaW1hZ2UgPSAoQ0dJbWFnZVJlZilpbmZvOwotICAgIENHRmxvYXQgc2NhbGUgPSBz
Y3JlZW5TY2FsZUZhY3RvcigpOwotICAgIENHQ29udGV4dERyYXdJbWFnZShjLCBDR1JlY3RNYWtl
KDAsIDAsIENHSW1hZ2VHZXRXaWR0aChpbWFnZSkgLyBzY2FsZSwgQ0dJbWFnZUdldEhlaWdodChp
bWFnZSkgLyBzY2FsZSksIGltYWdlKTsgICAgCi19Ci0KLXN0YXRpYyB2b2lkIFdLUmVsZWFzZVBh
dHRlcm5CaXRtYXAodm9pZCAqaW5mbykgCi17Ci0gICAgQ0dJbWFnZVJlbGVhc2UocmVpbnRlcnBy
ZXRfY2FzdDxDR0ltYWdlUmVmPihpbmZvKSk7Ci19Ci0KLXN0YXRpYyBjb25zdCBDR1BhdHRlcm5D
YWxsYmFja3MgV0tQYXR0ZXJuQml0bWFwQ2FsbGJhY2tzID0gCi17Ci0gICAgMCwgV0tEcmF3UGF0
dGVybkJpdG1hcCwgV0tSZWxlYXNlUGF0dGVybkJpdG1hcAotfTsKLQotQ0dQYXR0ZXJuUmVmIFdL
Q3JlYXRlUGF0dGVybkZyb21DR0ltYWdlKENHSW1hZ2VSZWYgaW1hZ2VSZWYpCi17Ci0gICAgLy8g
cmV0YWluIGltYWdlIHNpbmNlIGl0J3MgZnJlZWQgYnkgb3VyIGNhbGxiYWNrCi0gICAgQ0dJbWFn
ZVJldGFpbihpbWFnZVJlZik7Ci0KLSAgICBDR0Zsb2F0IHNjYWxlID0gc2NyZWVuU2NhbGVGYWN0
b3IoKTsKLSAgICByZXR1cm4gQ0dQYXR0ZXJuQ3JlYXRlKCh2b2lkKilpbWFnZVJlZiwgQ0dSZWN0
TWFrZSgwLCAwLCBDR0ltYWdlR2V0V2lkdGgoaW1hZ2VSZWYpIC8gc2NhbGUsIENHSW1hZ2VHZXRI
ZWlnaHQoaW1hZ2VSZWYpIC8gc2NhbGUpLCBDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5LCBDR0lt
YWdlR2V0V2lkdGgoaW1hZ2VSZWYpIC8gc2NhbGUsIENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2VSZWYp
IC8gc2NhbGUsIGtDR1BhdHRlcm5UaWxpbmdDb25zdGFudFNwYWNpbmcsIDEgLyppc0NvbG9yZWQq
LywgJldLUGF0dGVybkJpdG1hcENhbGxiYWNrcyk7Ci19Ci0KLXZvaWQgV0tTZXRQYXR0ZXJuKENH
Q29udGV4dFJlZiBjb250ZXh0LCBDR1BhdHRlcm5SZWYgcGF0dGVybiwgYm9vbCBmaWxsLCBib29s
IHN0cm9rZSkgCi17Ci0gICAgaWYgKHBhdHRlcm4gPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgQ0dGbG9hdCBwYXR0ZXJuQWxwaGEgPSAxOwotICAgIENHQ29sb3JTcGFjZVJlZiBjb2xv
cnNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlUGF0dGVybihOVUxMKTsKLSAgICBpZiAoZmlsbCkg
ewotICAgICAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3JTcGFjZShjb250ZXh0LCBjb2xvcnNwYWNl
KTsKLSAgICAgICAgQ0dDb250ZXh0U2V0RmlsbFBhdHRlcm4oY29udGV4dCwgcGF0dGVybiwgJnBh
dHRlcm5BbHBoYSk7Ci0gICAgfQotICAgIGlmIChzdHJva2UpIHsKLSAgICAgICAgQ0dDb250ZXh0
U2V0U3Ryb2tlQ29sb3JTcGFjZShjb250ZXh0LCBjb2xvcnNwYWNlKTsKLSAgICAgICAgQ0dDb250
ZXh0U2V0U3Ryb2tlUGF0dGVybihjb250ZXh0LCBwYXR0ZXJuLCAmcGF0dGVybkFscGhhKTsKLSAg
ICB9Ci0gICAgQ0dDb2xvclNwYWNlUmVsZWFzZShjb2xvcnNwYWNlKTsKLX0KLQogI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93
YWsvV0tHcmFwaGljc0ludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mvd2Fr
L1dLR3JhcGhpY3NJbnRlcm5hbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmVk
NDc2ZjIyYzA1MTUxOWRhMDJmZDUxMjE3ZWY2ZGY0MjNmODRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy93
YWsvV0tHcmFwaGljc0ludGVybmFsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBUQVJHRVRfT1NfSVBIT05FCi0KLSNpbXBv
cnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KLQotdHlwZWRlZiBpbnQgV0tDb21wb3Np
dGVPcGVyYXRpb247Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYK
LQotdm9pZCBXS1JlY3RGaWxsVXNpbmdPcGVyYXRpb24oQ0dDb250ZXh0UmVmLCBDR1JlY3QsIFdL
Q29tcG9zaXRlT3BlcmF0aW9uKTsKLUNHSW1hZ2VSZWYgV0tHcmFwaGljc0NyZWF0ZUltYWdlRnJv
bUJ1bmRsZVdpdGhOYW1lKGNvbnN0IGNoYXIgKmltYWdlX2ZpbGUpOwotQ0dQYXR0ZXJuUmVmIFdL
Q3JlYXRlUGF0dGVybkZyb21DR0ltYWdlKENHSW1hZ2VSZWYgaW1hZ2VSZWYpOwotdm9pZCBXS1Nl
dFBhdHRlcm4oQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUGF0dGVyblJlZiBwYXR0ZXJuLCBib29s
IGZpbGwsIGJvb2wgc3Ryb2tlKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQot
I2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcAppbmRleCA1ZWFjNzRhYmQyMWIxMTZhNzNmNTA0YzI1YzJjMTkzYjAyMTQ1
YmE4Li4wYTc4NGNjYzM0YWYwMWRiMTA2NDg2ZmJjNzczNTEzM2E1MDRjNmQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC03MjYsNyArNzI2LDcgQEAg
dm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgICAgICB1bmRlcmxpbmVPZmZzZXQgPSBiYXNlbGlu
ZSArIDI7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5kcmF3TGluZUZvckRvY3VtZW50TWFya2VyKHJl
bmRlcmVyKCksIGNvbnRleHQsIEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIHN0YXJ0LCBib3hP
cmlnaW4ueSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVTdHlsZUZvck1hcmtlZFRl
eHRUeXBlKG1hcmtlZFRleHQudHlwZSkpOwogI2Vsc2UKICAgICBjb250ZXh0LmRyYXdMaW5lRm9y
RG9jdW1lbnRNYXJrZXIoRmxvYXRQb2ludChib3hPcmlnaW4ueCgpICsgc3RhcnQsIGJveE9yaWdp
bi55KCkgKyB1bmRlcmxpbmVPZmZzZXQpLCB3aWR0aCwgbGluZVN0eWxlRm9yTWFya2VkVGV4dFR5
cGUobWFya2VkVGV4dC50eXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ29jb2EuaAppbmRleCAzMDE1MWQ4NDhlZTQ1Y2Y4NWQ4ODk0MTEzMTQyZTA3MjI5YmUxYzRj
Li5jMjgzMGZlOGFkY2FkNTFlMTJkNDMxYmQ2YWZlMTMzNDk5ZGIzMzNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKQEAgLTM2LDYgKzM2LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVibGljIFJlbmRl
clRoZW1lIHsKIHByaXZhdGU6CisgICAgdm9pZCBkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNv
bnN0IFJlbmRlclRleHQmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBvcmln
aW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSkgZmluYWw7CisKICNpZiBF
TkFCTEUoQVBQTEVfUEFZKQogICAgIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShTdHls
ZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCBwYWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KaW5kZXggZGYyYzczMWQwODk2NzYxZDI3NzQy
ZGQ5M2VlNmUxMzEzZGRmZDI5MS4uYTYxNzgwNDdhMWIyZTM5ZmUyMGYxYjlhYzI2M2FlMmVlNDVl
OWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0K
QEAgLTIzLDE2ICsyMywxNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVtZUNvY29hLmgi
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJlbmRlclRoZW1lQ29jb2EuaCIKKworI2lt
cG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbXBvcnQgIlJlbmRlclRleHQuaCIKIAogI2lm
IEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
aCIKLSNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1Bhc3NLaXRTUEkuaD4KLSNpbmNsdWRlIDx3dGYv
U29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUGFzc0tpdFNQSS5oPgorI2lt
cG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiBTT0ZUX0xJTktf
UFJJVkFURV9GUkFNRVdPUksoUGFzc0tpdCk7CkBAIC00NSwxMiArNDUsNTYgQEAgU09GVF9MSU5L
X01BWV9GQUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2b2lkLCAoQ0dDb250ZXh0
UmVmIGNvbnRleHQsIEMKICNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQogCiAjaWYgRU5BQkxF
KFZJREVPKQotI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQmxv
Y2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2ltcG9y
dCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3N0YXRpYyBDR0NvbG9yUmVmIGNvbG9yRm9yU3R5bGUoRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGUgc3R5bGUsIGJvb2wgdXNlRGFya01vZGUpCit7CisgICAgc3dpdGNoIChzdHlsZSkgewor
ICAgIC8vIFJlZAorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OlNwZWxsaW5nOgor
ICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgMjU1LCAx
NDAsIDE0MCwgMjE3IH0gOiBDb2xvciB7IDI1NSwgNTksIDQ4LCAxOTEgfSk7CisgICAgLy8gQmx1
ZQorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkRpY3RhdGlvbkFsdGVybmF0aXZl
czoKKyAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpUZXh0Q2hlY2tpbmdEaWN0YXRp
b25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOgorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGU6OkF1dG9jb3JyZWN0aW9uUmVwbGFjZW1lbnQ6CisgICAgICAgIHJldHVybiBjYWNoZWRDR0Nv
bG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyA0MCwgMTQ1LCAyNTUsIDIxNyB9IDogQ29sb3IgeyAw
LCAxMjIsIDI1NSwgMTkxIH0pOworICAgIC8vIEdyZWVuCisgICAgY2FzZSBEb2N1bWVudE1hcmtl
ckxpbmVTdHlsZTo6R3JhbW1hcjoKKyAgICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFy
a01vZGUgPyBDb2xvciB7IDUwLCAyMTUsIDc1LCAyMTcgfSA6IENvbG9yIHsgMjUsIDE3NSwgNTAs
IDE5MSB9KTsKKyAgICB9Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVDb2NvYTo6ZHJhd0xpbmVGb3JE
b2N1bWVudE1hcmtlcihjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJlciwgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKK3sKKyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2Fi
bGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gY2lyY2xlQ29sb3IgPSBjb2xvckZv
clN0eWxlKHN0eWxlLCByZW5kZXJlci5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpICYmIHJl
bmRlcmVyLnBhZ2UoKS51c2VEYXJrQXBwZWFyYW5jZSgpKTsKKworICAgIC8vIENlbnRlciB0aGUg
dW5kZXJsaW5lIGFuZCBlbnN1cmUgd2Ugb25seSBkcmF3IGVudGlyZSBkb3RzLgorICAgIEZsb2F0
UG9pbnQgb2Zmc2V0UG9pbnQgPSBvcmlnaW47CisgICAgZmxvYXQgd2lkdGhNb2QgPSBmbW9kZih3
aWR0aCwgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCk7CisgICAgaWYgKGNNaXNzcGVsbGlu
Z0xpbmVQYXR0ZXJuV2lkdGggLSB3aWR0aE1vZCA+IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2Fw
V2lkdGgpIHsKKyAgICAgICAgZmxvYXQgZ2FwSW5jbHVkZVdpZHRoID0gMDsKKyAgICAgICAgaWYg
KHdpZHRoID4gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCkKKyAgICAgICAgICAgIGdhcElu
Y2x1ZGVXaWR0aCA9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGg7CisgICAgICAgIG9m
ZnNldFBvaW50Lm1vdmUoZmxvb3IoKHdpZHRoTW9kICsgZ2FwSW5jbHVkZVdpZHRoKSAvIDIpLCAw
KTsKKyAgICAgICAgd2lkdGggLT0gd2lkdGhNb2Q7CisgICAgfQorCisgICAgQ0dDb250ZXh0UmVm
IHBsYXRmb3JtQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7CisgICAgQ0dDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyIHsgcGxhdGZvcm1Db250ZXh0IH07CisgICAgQ0dDb250
ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9yKHBsYXRmb3JtQ29udGV4dCwgY2lyY2xlQ29sb3IpOwor
ICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHggKz0gY01pc3NwZWxsaW5nTGluZVBhdHRl
cm5XaWR0aCkKKyAgICAgICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChwbGF0Zm9ybUNvbnRl
eHQsIENHUmVjdE1ha2Uob2Zmc2V0UG9pbnQueCgpICsgeCwgb2Zmc2V0UG9pbnQueSgpLCBjTWlz
c3BlbGxpbmdMaW5lVGhpY2tuZXNzLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzKSk7CisgICAg
Q0dDb250ZXh0U2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwga0NHQ29tcG9z
aXRlU292ZXIpOworICAgIENHQ29udGV4dEZpbGxQYXRoKHBsYXRmb3JtQ29udGV4dCk7Cit9CisK
ICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiBzdGF0aWMgY29uc3QgYXV0byBhcHBsZVBheUJ1dHRv
bk1pbmltdW1XaWR0aCA9IDE0MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLmgKaW5kZXggZDk4ZGUzYTk1OTkxNmM4ZmFhMzU0ZGVkZTUxOTk4Zjg4ZDhiMGU5Yy4uYmE3
OWJkYWM3Mjk3YjMxYjQ2YTZiZjRkNWQzNzIxNWFhMzk4MzlmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE3NCw4ICsxNzQsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgcGFpbnRBdHRhY2htZW50KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCBkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IFJlbmRlclRleHQmLCBHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVT
dHlsZSkgZmluYWw7Ci0KICAgICBib29sIHVzaW5nRGFya0FwcGVhcmFuY2UoY29uc3QgUmVuZGVy
T2JqZWN0JikgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMTAwOWMyMWY4MjA1OTc2ZmQxOWQ1NDc4NWMxZDE4
Y2RjYjA4NjJmOS4uZWU0MzMxNzBlMmQ3YTI3NzAzMDViNDQyYmNlYjRlZGEyYzE4ZDc3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMzcsNyArMzcs
NiBAQAogI2ltcG9ydCAiRnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJHZW9tZXRyeVV0aWxpdGllcy5o
IgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW1wb3J0ICJHcmFwaGljc0NvbnRleHRD
Ry5oIgogI2ltcG9ydCAiSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MSW5w
dXRFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MTWVkaWFFbGVtZW50LmgiCkBAIC0yOTg0LDUwICsy
OTgzLDYgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRBdHRhY2htZW50KGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IFBhaW50SW4KIAogI2VuZGlmIC8vIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCiAKLXN0YXRpYyBDR0NvbG9yUmVmIGNvbG9yRm9yU3R5bGUoRG9jdW1l
bnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUsIGJvb2wgdXNlRGFya01vZGUpCi17Ci0gICAgc3dpdGNo
IChzdHlsZSkgewotICAgIC8vIFJlZC4KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxl
OjpTcGVsbGluZzoKLSAgICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUgPyBD
b2xvciB7IDI1NSwgMTQwLCAxNDAsIDIxNyB9IDogQ29sb3IgeyAyNTUsIDU5LCA0OCwgMTkxIH0p
OwotICAgIC8vIEJsdWUuCi0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6RGljdGF0
aW9uQWx0ZXJuYXRpdmVzOgotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OlRleHRD
aGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXM6Ci0gICAgY2FzZSBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKLSAgICAgICAgcmV0
dXJuIGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUgPyBDb2xvciB7IDQwLCAxNDUsIDI1NSwgMjE3
IH0gOiBDb2xvciB7IDAsIDEyMiwgMjU1LCAxOTEgfSk7Ci0gICAgLy8gR3JlZW4uCi0gICAgY2Fz
ZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6R3JhbW1hcjoKLSAgICAgICAgcmV0dXJuIGNhY2hl
ZENHQ29sb3IodXNlRGFya01vZGUgPyBDb2xvciB7IDUwLCAyMTUsIDc1LCAyMTcgfSA6IENvbG9y
IHsgMjUsIDE3NSwgNTAsIDE5MSB9KTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyVGhlbWVNYWM6
OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3
aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCi17Ci0gICAgaWYgKGNvbnRleHQu
cGFpbnRpbmdEaXNhYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGNpcmNsZUNv
bG9yID0gY29sb3JGb3JTdHlsZShzdHlsZSwgcmVuZGVyZXIucGFnZSgpLnVzZVN5c3RlbUFwcGVh
cmFuY2UoKSAmJiByZW5kZXJlci5wYWdlKCkudXNlRGFya0FwcGVhcmFuY2UoKSk7Ci0KLSAgICAv
LyBDZW50ZXIgdGhlIHVuZGVybGluZSBhbmQgZW5zdXJlIHdlIG9ubHkgZHJhdyBlbnRpcmVzIGRv
dHMuCi0gICAgRmxvYXRQb2ludCBvZmZzZXRQb2ludCA9IG9yaWdpbjsKLSAgICBmbG9hdCB3aWR0
aE1vZCA9IGZtb2RmKHdpZHRoLCBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKTsKLSAgICBp
ZiAoY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCAtIHdpZHRoTW9kID4gY01pc3NwZWxsaW5n
TGluZVBhdHRlcm5HYXBXaWR0aCkgewotICAgICAgICBmbG9hdCBnYXBJbmNsdWRlV2lkdGggPSAw
OwotICAgICAgICBpZiAod2lkdGggPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKQotICAg
ICAgICAgICAgZ2FwSW5jbHVkZVdpZHRoID0gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0
aDsKLSAgICAgICAgb2Zmc2V0UG9pbnQubW92ZShmbG9vcigod2lkdGhNb2QgKyBnYXBJbmNsdWRl
V2lkdGgpIC8gMiksIDApOwotICAgICAgICB3aWR0aCAtPSB3aWR0aE1vZDsKLSAgICB9Ci0KLSAg
ICBDR0NvbnRleHRSZWYgY3R4ID0gY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBDR0Nv
bnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIgeyBjdHggfTsKLSAgICBDR0NvbnRleHRTZXRGaWxs
Q29sb3JXaXRoQ29sb3IoY3R4LCBjaXJjbGVDb2xvcik7Ci0gICAgZm9yIChpbnQgeCA9IDA7IHgg
PCB3aWR0aDsgeCArPSBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKQotICAgICAgICBDR0Nv
bnRleHRBZGRFbGxpcHNlSW5SZWN0KGN0eCwgQ0dSZWN0TWFrZShvZmZzZXRQb2ludC54KCkgKyB4
LCBvZmZzZXRQb2ludC55KCksIGNNaXNzcGVsbGluZ0xpbmVUaGlja25lc3MsIGNNaXNzcGVsbGlu
Z0xpbmVUaGlja25lc3MpKTsKLSAgICBDR0NvbnRleHRTZXRDb21wb3NpdGVPcGVyYXRpb24oY3R4
LCBrQ0dDb21wb3NpdGVTb3Zlcik7Ci0gICAgQ0dDb250ZXh0RmlsbFBhdGgoY3R4KTsKLX0KLQog
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6dXNpbmdEYXJrQXBwZWFyYW5jZShjb25zdCBSZW5kZXJPYmpl
Y3QmIG8pIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>